java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Enterprise Java > Application Tier

Application Tier EJB, Spring

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 03.03.2010, 10:26   #1 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 02.03.2010
Beiträge: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Spring DM: Problem mit Tomcat als OSGI-Service

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" />
mari01 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 03.03.2010, 11:57   #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.
maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ä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


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:44 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de