2014-03-31 6 views
3

우리는 우분투 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에서 동일한 오류로 다운 그레이드를 시도했습니다.

도움이나 아이디어는 정말 고맙습니다.

답변

1

@rustyx가 제시해야하는 것은 무엇입니까. 하지만 오픈 JDK 1.7를 사용하여 동일한 문제가 있었다,이 솔루션은 도움이 내 pom.xml 파일

<!-- JAX-WS Dependencies --> 
    <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> 

희망, 건배에 다음과 같은 종속성을 추가했다

1

JAX-WS를 실행하는 데 필요한 모든 것이 이미 표준 Java 1.7 JVM에 포함되어 있습니다.

응용 프로그램에 대한 사용자 지정 JAR 만 포함하십시오.

번들 JAR에서 jaxws, jaxb, policy, stax 및 streambuffer와 관련된 내용을 제거하는 것이 좋습니다.

+0

톰캣은 JVM에서 이러한 항아리에 액세스 할 수 없습니다 . Tomcat은 JRE에서만 실행됩니다. 이 항아리는 JRE 외부에 있습니다. – DolphinJava

+0

Java SE (Oracle JRE)에는 버전 6부터 JAX-WS 서비스를 실행하는 데 필요한 모든 것이 포함됩니다. [link] (http://www.oracle.com/technetwork/articles/javase/jax-ws-2-141894.html) – rustyx

+0

동의. 내 의견이 잘못되었습니다. JAX-WS는 API로 사용할 수 있으므로 직접 코드로 가져올 수 있습니다. 다른 병을 넣지 않아도됩니다. – DolphinJava