Hallo,
ich habe eine RCP-Anwendung und muss die Geschäftslogik auf einen remote Applikationserver auslagern. Das Ziel ist dabei, das eine so angepasste Anwendung installationsabhängig entweder als standalone RCP-Client oder als verteilte Server/Client RCP Anwendung deployed werden kann.
Dafür möchte ich Spring DM mit dem Spring HTTPInvoker für die Kommunikation zwischen RCP-Client und OSGI-Server einsetzen.
Beim Start vom Server OSGI Frameworks bekomme ich folgende Exceptions:
org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1073)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:278)
at org.eclipse.ui.internal.WorkbenchPlugin.start(WorkbenchPlugin.java:899)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:280)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:408)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:449)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:454)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:457)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:326)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:231)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:150)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
log4j:WARN No appenders could be found for logger (org.springframework.osgi.web.tomcat.internal.Activator).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "Tomcat Catalina Start Thread" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.catalina.core.StandardService.<clinit>(StandardService.java:56)
at org.springframework.osgi.web.tomcat.internal.Activator.createServerFromXML(Activator.java:174)
at org.springframework.osgi.web.tomcat.internal.Activator.createCatalinaServer(Activator.java:170)
at org.springframework.osgi.web.tomcat.internal.Activator.access$300(Activator.java:58)
at org.springframework.osgi.web.tomcat.internal.Activator$1.run(Activator.java:95)
at java.lang.Thread.run(Thread.java:619)
Ich habe hier gleich zwei Probleme.
Erstrens, org.springframework.osgi.web.tomcat.internal.Activator findet die log4j- Config nicht.
Ich habe aber ein Fragment mit dem Host org.springframework.osgi.log4j.osgi und log4j.property (mit 4 Zeilen) im Root-Verzeichnis erstellt.
Manifest.mf:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Config
Bundle-SymbolicName: org.springframework.osgi.log4j.config
Bundle-Version: 1.2.15.qualifier
Bundle-Vendor:
Fragment-Host: org.springframework.osgi.log4j.osgi;bundle-version="1.2.15.SNAPSHOT"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Warum funktioniert es nicht?
Zweitens, Tomcat als Web Container ist anscheinend nicht korrekt als OSGi Service installiert.
Ich habe ein Plugin org.apache.tomcat aus allen jars von Apache Tomcat 6.0.24
und ein Fragment server.config zum Host org.springframework.osgi.catalina.start.osgi erstellt.
Im Manifest.mf vom server.config habe ich Plugin org.apache.tomcat als Required Plugin eingetragen.
Ist es vielleicht die falsche Vorgehensweise?
Ich habe ein Spring-Target-Platform angelegt, das so aussieht:
/spring-target-platform
/spring-target-platform/server
/spring-target-platform/server/tomcat
/spring-target-platform/server/tomcat/catalina.osgi-5.5.23-SNAPSHOT.jar
/spring-target-platform/server/tomcat/catalina.start.osgi-1.0.0.jar
/spring-target-platform/server/tomcat/com.springsource.javax.el_1.0.0.jar
/spring-target-platform/server/tomcat/com.springsource.javax.servlet.jsp_2.1.0.jar
/spring-target-platform/server/tomcat/jasper.osgi-5.5.23-20081003.025534-28.jar
/spring-target-platform/server/org.springframework.web.servlet_3.0.0.RELEASE.jar
/spring-target-platform/server/spring-osgi-web-1.2.1.jar
/spring-target-platform/server/spring-osgi-web-extender-1.2.1.jar
/spring-target-platform/com.springsource.javax.servlet-2.4.0.jar
/spring-target-platform/com.springsource.org.aopalliance-1.0.0.jar
/spring-target-platform/com.springsource.slf4j.api-1.5.0.jar
/spring-target-platform/com.springsource.slf4j.log4j-1.5.0.jar
/spring-target-platform/com.springsource.slf4j.org.apache.commons.logging-1.5.0.jar
/spring-target-platform/log4j.osgi-1.2.15-SNAPSHOT.jar
/spring-target-platform/org.springframework.aop_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.asm_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.beans_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.context_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.context.support_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.core_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.expression_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.web_3.0.0.RELEASE.jar
/spring-target-platform/spring-osgi-core-1.2.1.jar
/spring-target-platform/spring-osgi-extender-1.2.1.jar
/spring-target-platform/spring-osgi-io-1.2.1.jar
Auf der Serverseite gibt es zum Test 4 Bundles:
de.bean - Java-Beans impl. Serializable
de.service.intefaces -Interfaces
de.service.impl - Implementierungen
de.remoting.exporter.war - Exporter
Manifest vom Exporter:
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.aopalliance.aop;version="1.0.0",
org.osgi.framework;version="1.5.0",
org.springframework.aop;version="3.0.0.RELEASE",
org.springframework.aop.framework;version="3.0.0.RELEASE",
org.springframework.osgi.web.context.support;version="1.2.1",
org.springframework.remoting;version="3.0.0.RELEASE",
org.springframework.remoting.httpinvoker;version="3.0.0.RELEASE",
org.springframework.remoting.support;version="3.0.0.RELEASE",
org.springframework.web.servlet;version="3.0.0.RELEASE",
de.bean.authorisation,
de.interfaces
Export-Package: de.remoting.exporter.http
web.xml vom Exporter:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>RemoteServer</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:**/*context.xml</param-name>
</context-param>
<context-param>
<param-name>
contextClass</param-name>
<param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>META-INF/spring/*.xml</param-value>
</init-param>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
</web-app>
spring-context.xml:
<bean name="/UserService"
class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
<property name="service" ref="userService" />
<property name="serviceInterface" value="de.interfaces.ITestAnmeldung" />
</bean>
spring-osgi-context.xml:
<osgi:reference id="userService" interface="de.interfaces.ITestAnmeldung"
timeout="1000" />
Auch für de.service.impl -Bundle sind Spring- und Spring-OSGI-Contexte definiert.
Würden Sie bitte prüfen, was nicht korrekt ist.
Vielen Dank im Voraus.
ich habe eine RCP-Anwendung und muss die Geschäftslogik auf einen remote Applikationserver auslagern. Das Ziel ist dabei, das eine so angepasste Anwendung installationsabhängig entweder als standalone RCP-Client oder als verteilte Server/Client RCP Anwendung deployed werden kann.
Dafür möchte ich Spring DM mit dem Spring HTTPInvoker für die Kommunikation zwischen RCP-Client und OSGI-Server einsetzen.
Beim Start vom Server OSGI Frameworks bekomme ich folgende Exceptions:
org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1073)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:278)
at org.eclipse.ui.internal.WorkbenchPlugin.start(WorkbenchPlugin.java:899)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:280)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:408)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:449)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:454)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:457)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:326)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:231)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:150)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
log4j:WARN No appenders could be found for logger (org.springframework.osgi.web.tomcat.internal.Activator).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "Tomcat Catalina Start Thread" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.catalina.core.StandardService.<clinit>(StandardService.java:56)
at org.springframework.osgi.web.tomcat.internal.Activator.createServerFromXML(Activator.java:174)
at org.springframework.osgi.web.tomcat.internal.Activator.createCatalinaServer(Activator.java:170)
at org.springframework.osgi.web.tomcat.internal.Activator.access$300(Activator.java:58)
at org.springframework.osgi.web.tomcat.internal.Activator$1.run(Activator.java:95)
at java.lang.Thread.run(Thread.java:619)
Ich habe hier gleich zwei Probleme.
Erstrens, org.springframework.osgi.web.tomcat.internal.Activator findet die log4j- Config nicht.
Ich habe aber ein Fragment mit dem Host org.springframework.osgi.log4j.osgi und log4j.property (mit 4 Zeilen) im Root-Verzeichnis erstellt.
Manifest.mf:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Config
Bundle-SymbolicName: org.springframework.osgi.log4j.config
Bundle-Version: 1.2.15.qualifier
Bundle-Vendor:
Fragment-Host: org.springframework.osgi.log4j.osgi;bundle-version="1.2.15.SNAPSHOT"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Warum funktioniert es nicht?
Zweitens, Tomcat als Web Container ist anscheinend nicht korrekt als OSGi Service installiert.
Ich habe ein Plugin org.apache.tomcat aus allen jars von Apache Tomcat 6.0.24
und ein Fragment server.config zum Host org.springframework.osgi.catalina.start.osgi erstellt.
Im Manifest.mf vom server.config habe ich Plugin org.apache.tomcat als Required Plugin eingetragen.
Ist es vielleicht die falsche Vorgehensweise?
Ich habe ein Spring-Target-Platform angelegt, das so aussieht:
/spring-target-platform
/spring-target-platform/server
/spring-target-platform/server/tomcat
/spring-target-platform/server/tomcat/catalina.osgi-5.5.23-SNAPSHOT.jar
/spring-target-platform/server/tomcat/catalina.start.osgi-1.0.0.jar
/spring-target-platform/server/tomcat/com.springsource.javax.el_1.0.0.jar
/spring-target-platform/server/tomcat/com.springsource.javax.servlet.jsp_2.1.0.jar
/spring-target-platform/server/tomcat/jasper.osgi-5.5.23-20081003.025534-28.jar
/spring-target-platform/server/org.springframework.web.servlet_3.0.0.RELEASE.jar
/spring-target-platform/server/spring-osgi-web-1.2.1.jar
/spring-target-platform/server/spring-osgi-web-extender-1.2.1.jar
/spring-target-platform/com.springsource.javax.servlet-2.4.0.jar
/spring-target-platform/com.springsource.org.aopalliance-1.0.0.jar
/spring-target-platform/com.springsource.slf4j.api-1.5.0.jar
/spring-target-platform/com.springsource.slf4j.log4j-1.5.0.jar
/spring-target-platform/com.springsource.slf4j.org.apache.commons.logging-1.5.0.jar
/spring-target-platform/log4j.osgi-1.2.15-SNAPSHOT.jar
/spring-target-platform/org.springframework.aop_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.asm_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.beans_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.context_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.context.support_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.core_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.expression_3.0.0.RELEASE.jar
/spring-target-platform/org.springframework.web_3.0.0.RELEASE.jar
/spring-target-platform/spring-osgi-core-1.2.1.jar
/spring-target-platform/spring-osgi-extender-1.2.1.jar
/spring-target-platform/spring-osgi-io-1.2.1.jar
Auf der Serverseite gibt es zum Test 4 Bundles:
de.bean - Java-Beans impl. Serializable
de.service.intefaces -Interfaces
de.service.impl - Implementierungen
de.remoting.exporter.war - Exporter
Manifest vom Exporter:
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.aopalliance.aop;version="1.0.0",
org.osgi.framework;version="1.5.0",
org.springframework.aop;version="3.0.0.RELEASE",
org.springframework.aop.framework;version="3.0.0.RELEASE",
org.springframework.osgi.web.context.support;version="1.2.1",
org.springframework.remoting;version="3.0.0.RELEASE",
org.springframework.remoting.httpinvoker;version="3.0.0.RELEASE",
org.springframework.remoting.support;version="3.0.0.RELEASE",
org.springframework.web.servlet;version="3.0.0.RELEASE",
de.bean.authorisation,
de.interfaces
Export-Package: de.remoting.exporter.http
web.xml vom Exporter:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>RemoteServer</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:**/*context.xml</param-name>
</context-param>
<context-param>
<param-name>
contextClass</param-name>
<param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>META-INF/spring/*.xml</param-value>
</init-param>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
</web-app>
spring-context.xml:
<bean name="/UserService"
class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
<property name="service" ref="userService" />
<property name="serviceInterface" value="de.interfaces.ITestAnmeldung" />
</bean>
spring-osgi-context.xml:
<osgi:reference id="userService" interface="de.interfaces.ITestAnmeldung"
timeout="1000" />
Auch für de.service.impl -Bundle sind Spring- und Spring-OSGI-Contexte definiert.
Würden Sie bitte prüfen, was nicht korrekt ist.
Vielen Dank im Voraus.
Zuletzt bearbeitet: