Bonjour à tous,
Nous avons développé des applications, dont certaines sont des web services. Maintenant nous sommes en phase de test et nous essayons de faire marcher nos applications sur divers serveurs d'application.
En l'état actuel, ça passe pour tomcat et JBoss. Mais nous avons un problème avec JOnAS pour les web services. Nous utilisons l'API Metro Web Services. Au démarrage, nous avons l'exception suivante:
En faite, il est arrivé à charger webservices-rt.jar mais pas webservices-api.jar (WebServiceFeature est dans ce JAR) !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93 2009-12-14 16:36:30,665 : INFO : Thread-11 : WARDeployer.doDeploy : Deploying DWL-WebServiceAdapter.web.war 2009-12-14 16:36:35,392 : INFO : Thread-11 : WSServletContextListener.contextInitialized : WSSERVLET12: JAX-WS context listener initializing 2009-12-14 16:36:35,399 : SEVERE : Thread-11 : WSServletContextListener.contextInitialized : WSSERVLET11: failed to parse runtime descriptor: java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceFeature java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceFeature at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:103) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429) at org.ow2.jonas.web.tomcat6.JOnASStandardContext.start(JOnASStandardContext.java:281) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.access$000(ContainerBase.java:123) at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:145) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:769) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) at org.ow2.jonas.web.tomcat6.Tomcat6Service.__doRegisterWar(Tomcat6Service.java:699) at org.ow2.jonas.web.tomcat6.Tomcat6Service.doRegisterWar(Tomcat6Service.java) at org.ow2.jonas.web.base.BaseWebContainerService.registerWar(BaseWebContainerService.java:918) at org.ow2.jonas.web.base.BaseWebContainerService.registerWar(BaseWebContainerService.java:1074) at org.ow2.jonas.web.tomcat6.Tomcat6Service.__registerWar(Tomcat6Service.java:1354) at org.ow2.jonas.web.tomcat6.Tomcat6Service.registerWar(Tomcat6Service.java) at org.ow2.jonas.web.base.proxy.HttpOnDemandProxy.addWar(HttpOnDemandProxy.java:358) at org.ow2.jonas.web.base.WARDeployer.doDeploy(WARDeployer.java:70) at org.ow2.util.ee.deploy.impl.deployer.AbsDeployer$1.execute(AbsDeployer.java:96) at org.ow2.util.ee.deploy.impl.deployer.AbsDeployer$1.execute(AbsDeployer.java:95) at org.ow2.util.execution.helper.RunnableHelper.execute(RunnableHelper.java:77) at org.ow2.util.ee.deploy.impl.deployer.AbsDeployer.deploy(AbsDeployer.java:94) at org.ow2.util.ee.deploy.impl.deployer.DeployerManager.deploy(DeployerManager.java:129) at org.ow2.jonas.deployablemonitor.DeployableMonitor.detectNewArchives(DeployableMonitor.java:443) at org.ow2.jonas.deployablemonitor.DeployableMonitor.checkNewArchives(DeployableMonitor.java:265) at org.ow2.jonas.deployablemonitor.DeployableMonitor.run(DeployableMonitor.java:175) Caused by: java.lang.ClassNotFoundException: javax.xml.ws.WebServiceFeature at org.apache.felix.framework.searchpolicy.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:627) at org.apache.felix.framework.searchpolicy.ModuleImpl.access$100(ModuleImpl.java:61) at org.apache.felix.framework.searchpolicy.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1469) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at org.apache.felix.framework.searchpolicy.ModuleImpl.getClassByDelegation(ModuleImpl.java:490) at org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:108) at org.apache.felix.framework.searchpolicy.ModuleImpl.searchImports(ModuleImpl.java:1206) at org.apache.felix.framework.searchpolicy.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:566) at org.apache.felix.framework.searchpolicy.ModuleImpl.access$100(ModuleImpl.java:61) at org.apache.felix.framework.searchpolicy.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1469) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 26 more 2009-12-14 16:36:35,402 : SEVERE : Thread-11 : StandardContext.listenerStart : Exception sending context initialized event to listener instance of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener com.sun.xml.ws.transport.http.servlet.WSServletException: WSSERVLET11: failed to parse runtime descriptor: java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceFeature at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:118) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429) at org.ow2.jonas.web.tomcat6.JOnASStandardContext.start(JOnASStandardContext.java:281) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.access$000(ContainerBase.java:123) at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:145) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:769) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) at org.ow2.jonas.web.tomcat6.Tomcat6Service.__doRegisterWar(Tomcat6Service.java:699) at org.ow2.jonas.web.tomcat6.Tomcat6Service.doRegisterWar(Tomcat6Service.java) at org.ow2.jonas.web.base.BaseWebContainerService.registerWar(BaseWebContainerService.java:918) at org.ow2.jonas.web.base.BaseWebContainerService.registerWar(BaseWebContainerService.java:1074) at org.ow2.jonas.web.tomcat6.Tomcat6Service.__registerWar(Tomcat6Service.java:1354) at org.ow2.jonas.web.tomcat6.Tomcat6Service.registerWar(Tomcat6Service.java) at org.ow2.jonas.web.base.proxy.HttpOnDemandProxy.addWar(HttpOnDemandProxy.java:358) at org.ow2.jonas.web.base.WARDeployer.doDeploy(WARDeployer.java:70) at org.ow2.util.ee.deploy.impl.deployer.AbsDeployer$1.execute(AbsDeployer.java:96) at org.ow2.util.ee.deploy.impl.deployer.AbsDeployer$1.execute(AbsDeployer.java:95) at org.ow2.util.execution.helper.RunnableHelper.execute(RunnableHelper.java:77) at org.ow2.util.ee.deploy.impl.deployer.AbsDeployer.deploy(AbsDeployer.java:94) at org.ow2.util.ee.deploy.impl.deployer.DeployerManager.deploy(DeployerManager.java:129) at org.ow2.jonas.deployablemonitor.DeployableMonitor.detectNewArchives(DeployableMonitor.java:443) at org.ow2.jonas.deployablemonitor.DeployableMonitor.checkNewArchives(DeployableMonitor.java:265) at org.ow2.jonas.deployablemonitor.DeployableMonitor.run(DeployableMonitor.java:175) Caused by: java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceFeature at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:103) ... 25 more Caused by: java.lang.ClassNotFoundException: javax.xml.ws.WebServiceFeature at org.apache.felix.framework.searchpolicy.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:627) at org.apache.felix.framework.searchpolicy.ModuleImpl.access$100(ModuleImpl.java:61) at org.apache.felix.framework.searchpolicy.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1469) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at org.apache.felix.framework.searchpolicy.ModuleImpl.getClassByDelegation(ModuleImpl.java:490) at org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:108) at org.apache.felix.framework.searchpolicy.ModuleImpl.searchImports(ModuleImpl.java:1206) at org.apache.felix.framework.searchpolicy.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:566) at org.apache.felix.framework.searchpolicy.ModuleImpl.access$100(ModuleImpl.java:61) at org.apache.felix.framework.searchpolicy.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1469) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 26 more 2009-12-14 16:36:35,417 : SEVERE : Thread-11 : StandardContext.start : Error listenerStart 2009-12-14 16:36:35,418 : SEVERE : Thread-11 : StandardContext.start : Context [/DWL-WebServiceAdapter.web] startup failed due to previous errors 2009-12-14 16:36:35,445 : INFO : Thread-11 : WSServletContextListener.contextDestroyed : WSSERVLET13: JAX-WS context listener destroyed 2009-12-14 16:36:35,454 : INFO : Thread-11 : BaseWebContainerService.registerWar : War DWL-WebServiceAdapter.web.war available at the context /DWL-WebServiceAdapter.web.
Or nous avons placés les JAR suivants dans $JONAS_BASE/lib/ext:
- webservices-extra.jar
- webservices-extra-api.jar
- webservices-rt.jar
- webservices-tools.jar
Et webservices-api.jar dans:
$JONAS_BASE/lib
$JONAS_BASE/lib/common
$JONAS_BASE/lib/endorsed
$JONAS_BASE/lib/ext
$JONAS_ROOT/lib
$JONAS_ROOT/lib/common
$JONAS_ROOT/lib/endorsed
$JONAS_ROOT/lib/ext
Visiblement il y a quelque chose qui m'échappe au niveau du classloader de JOnAS ! D'après la doc, il suffit de placer webservices-api.jar dans $JONAS_BASE/lib/ext. J'ai l'impression qu'il tente de chercher le JAR dans le repository Maven (Apache Felix) !
Bref, ça fait quelques jours que je suis dessus et je n'ai toujours pas trouvé de solution.
A titre d'info, sous Tomcat, nous avons les JAR de Metro:
$CATALINA_HOME/shared/lib/webservices-api.jar
$CATALINA_HOME/shared/lib/webservices-extra.jar
$CATALINA_HOME/shared/lib/webservices-extra-api.jar
$CATALINA_HOME/shared/lib/webservices-rt.jar
$CATALINA_HOME/shared/lib/webservices-tools.jar
$CATALINA_HOME/common/endorsed/webservices-api.jar
Sous JBoss, nous avons:
$JBOSS_HOME/server/default/lib/webservices-api.jar
$JBOSS_HOME/server/default/lib/webservices-extra.jar
$JBOSS_HOME/server/default/lib/webservices-extra-api.jar
$JBOSS_HOME/server/default/lib/webservices-rt.jar
$JBOSS_HOME/server/default/lib/webservices-tools.jar
Ma configuration:
- JOnAS 5.1.1
- JDK 1.6.0_12
- Système Linux Fedora 10 (noyau 2.6.27.21-170.2.56)
Merci d'avance pour votre aide.
Jean-Philippe MINETTI
Partager