2012-11-26 5 views
7

starałem się wdrożyć usługa JAX-WS pod CentOS 6.3 -> Apache -> Tomcat 5.5Tomcat: failed do analizowania deskryptora wykonania

czytam wyszukiwane z Google na wiele godzin, zwróciła się do wszystkich moich przyjaciół, a także starał się znaleźć rozwiązanie na stackoverflow, ale bezskutecznie. Czy ktoś może mi pomóc? Z góry dziękuję.

I pojawia się następujący komunikat o błędzie:

Nov 26, 2012 12:36:52 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener parseAdaptersAndCreateDelegate 
SEVERE: WSSERVLET11: failed to parse runtime descriptor: java.lang.IllegalAccessError: class com.sun.xml.ws.assembler.MetroClientTubelineAssemblyContextImpl cannot access its superclass com.sun.xml.ws.assembler.DefaultClientTubelineAssemblyContext 
java.lang.IllegalAccessError: class com.sun.xml.ws.assembler.MetroClientTubelineAssemblyContextImpl cannot access its superclass com.sun.xml.ws.assembler.DefaultClientTubelineAssemblyContext 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at com.sun.xml.ws.assembler.MetroTubelineAssemblerFactoryImpl.doCreate(MetroTubelineAssemblerFactoryImpl.java:63) 
    at com.sun.xml.ws.api.pipe.TubelineAssemblerFactory.create(TubelineAssemblerFactory.java:109) 
    at com.sun.xml.ws.server.WSEndpointImpl.(WSEndpointImpl.java:170) 
    at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:306) 
    at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:301) 
    at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:147) 
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:574) 
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:557) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:260) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:152) 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131) 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:884) 
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:737) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) 
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1271) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:301) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) 
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559) 
    at java.lang.Thread.run(Thread.java:662) 
Nov 26, 2012 12:36:52 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: 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.IllegalAccessError: class com.sun.xml.ws.assembler.MetroClientTubelineAssemblyContextImpl cannot access its superclass com.sun.xml.ws.assembler.DefaultClientTubelineAssemblyContext 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:141) 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:884) 
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:737) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) 
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1271) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:301) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) 
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.IllegalAccessError: class com.sun.xml.ws.assembler.MetroClientTubelineAssemblyContextImpl cannot access its superclass com.sun.xml.ws.assembler.DefaultClientTubelineAssemblyContext 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at com.sun.xml.ws.assembler.MetroTubelineAssemblerFactoryImpl.doCreate(MetroTubelineAssemblerFactoryImpl.java:63) 
    at com.sun.xml.ws.api.pipe.TubelineAssemblerFactory.create(TubelineAssemblerFactory.java:109) 
    at com.sun.xml.ws.server.WSEndpointImpl.(WSEndpointImpl.java:170) 
    at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:306) 
    at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:301) 
    at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:147) 
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:574) 
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:557) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:260) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:152) 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131) 
    ... 17 more 
Nov 26, 2012 12:36:52 PM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
Nov 26, 2012 12:36:52 PM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/lws] startup failed due to previous errors 
Nov 26, 2012 12:36:52 PM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextDestroyed 
INFO: WSSERVLET13: JAX-WS context listener destroyed 

Odpowiedz

2

przyjrzeć dokumentacji:

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/IllegalAccessError.html rzucony jeśli aplikacja próbuje uzyskać dostęp lub zmodyfikować pole lub do wywołania metody, które go nie ma dostępu do. Zazwyczaj ten błąd jest przechwytywany przez kompilator; ten błąd może wystąpić tylko w czasie wykonywania, jeśli definicja klasy zmieniła się niepoprawnie.

Innymi słowy, MetroClientTubelineAssemblyContextImpl zostało skompilowane do podklasy wersji superklasy DefaultClientTubelineAssemblyContext, ale wygląda na to, że zmieniło się w środowisku wykonawczym.

To, co prawdopodobnie się z tobą dzieje, to dwa słoiki w ścieżce klas z jedną z tych dwóch klas: DefaultClientTubelineAssemblyContext lub MetroClientTubelineAssemblyContextImpl. Powinieneś poszukać, jakie słoiki mają te klasy i spróbować załadować tylko jedną.

Poszukaj słoików wewnątrz WEB-INF/lib archiwum aplikacji i słoików w folderze $ TOMCAT_HOME/lib, aby sprawdzić, czy znajdują się jakieś duplikaty.