우리는 우분투 13.04 + Tomcat/7.0.35 + java 1.7.0_51-b00을 실행 중입니다. 설치가 몇 달 동안 성공적으로 실행되었습니다. 이제 우리는 웹 애플리케이션 이클립스/tomcat7을 통해 로컬로 실행하게 다음 받는다는 종속성을 추가Tomcat 7.0.35와 JAXWS 배포 문제
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/v014]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NoSuchMethodError: com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(Ljavax/servlet/ServletContext;)V
at com.sun.xml.ws.transport.http.servlet.WSServletContainerInitializer.onStartup(WSServletContainerInitializer.java:65)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5280)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10 more
Mar 31, 2014 12:26:43 PM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application archive /var/lib/tomcat7/webapps/v014.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/v014]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
말, JAX-WS 2.2.8 더 이상 서버에 배포하지 않는 응용 프로그램을 사용하여 SOAP 엔드 포인트를 추가했지만 않습니다 원격 서버의 문제를 해결하지 못합니다.
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.2.8</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.stream</groupId>
<artifactId>sjsxp</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.sun.xml.stream.buffer</groupId>
<artifactId>streambuffer</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>policy</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.gmbal</groupId>
<artifactId>gmbal-api-only</artifactId>
<version>3.2.0-b003</version>
</dependency>
<dependency>
<groupId>org.glassfish.ha</groupId>
<artifactId>ha-api</artifactId>
<version>3.1.9</version>
</dependency>
우리는 수동으로 항아리 Tomcat의 lib 디렉토리 및/또는 전혀 효과 웹 애플리케이션의 WEB-INF 폴더 모두에
jaxb-impl.jar jaxb-core.jar ha-api.jar gmbal-api-only.jar jaxws-api.jar jaxws-rt.jar management-api.jar policy.jar stax-ex.jar streambuffer.jar
를 추가하는 것을 시도했다.
또한 jax-ws 2.1에서 동일한 오류로 다운 그레이드를 시도했습니다.
도움이나 아이디어는 정말 고맙습니다.
톰캣은 JVM에서 이러한 항아리에 액세스 할 수 없습니다 . Tomcat은 JRE에서만 실행됩니다. 이 항아리는 JRE 외부에 있습니다. – DolphinJava
Java SE (Oracle JRE)에는 버전 6부터 JAX-WS 서비스를 실행하는 데 필요한 모든 것이 포함됩니다. [link] (http://www.oracle.com/technetwork/articles/javase/jax-ws-2-141894.html) – rustyx
동의. 내 의견이 잘못되었습니다. JAX-WS는 API로 사용할 수 있으므로 직접 코드로 가져올 수 있습니다. 다른 병을 넣지 않아도됩니다. – DolphinJava