![]() |
|
|
|||||||
| Application Tier EJB, Spring |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Neuer Benutzer
Bit
Registriert seit: 02.03.2010
Beiträge: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo,
ich habe eine fertige 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 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> im spring-context.xml: <bean name="/UserService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service" ref="userService" /> <property name="serviceInterface" value="vas.interfaces.ITestAnmeldung" /> </bean> im Spring-osgi-context.xml: <osgi:reference id="userService" interface="vas.interfaces.ITestAnmeldung" timeout="1000" /> |
|
|
| #2 (permalink) | |
|
Java-Forum Team
Moderator
Registriert seit: 13.09.2007
Beiträge: 8.314
Abgegebene Danke: 6
Erhielt 134 Danke für 132 Beiträge
|
*geschlossen*
Hier geht's weiter: Spring DM: Problem mit Tomcat als OSGI-Service Bitte keine Doppelposts. |
|
|
|
| Lesezeichen |
Latex Maths & Physics Editor ...
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Tomcat: beim Start des Servers einmalige Aktion aufrufen (Problem gelöst) | anp | Web Tier | 2 | 01.06.2009 01:49 |
| Tomcat5.5 | mathon | Server einrichten und konfigurieren | 8 | 17.08.2005 09:26 |
| Tomcat Servlet Problem | Kian | Server einrichten und konfigurieren | 5 | 12.03.2005 10:23 |
| OSGI und RMI Problem | Walmar | Netzwerkprogrammierung | 1 | 22.11.2004 16:27 |
| refresh problem - tomcat 4.1 | Server einrichten und konfigurieren | 4 | 03.11.2004 17:18 | |