2013-09-03 3 views
2

Apache CXF, Apache Camel 및 Spring with Maven을 사용하여 JAX-RS 응용 프로그램을 작성하고 있습니다. 애플리케이션을 실행하면 임베디드 부두가 생성되어 요청을 처리합니다.JAX-RS에서 임베디드 부두를 제거하는 방법 독립 실행 형 Tomcat에서 Apache CXF, Apache Camel, Spring 응용 프로그램 및 배포

임베디드 부두를 제거하고 war 파일을 사용하여 독립형 Tomcat에서 실행하고 싶습니다. 내가 사용할 수있는 많은 제안을 시도했지만 내 경우에는 작동하지 않습니다. 같은 제안을하십시오.

내 리딩이

  <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-transports-http</artifactId> 
      <version>2.7.6</version> 
      </dependency> 

      <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-frontend-jaxrs</artifactId> 
      <version>2.7.6</version> 
      </dependency> 

      <dependency> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-servlets</artifactId> 
      <version>8.1.3.v20120416</version> 
      </dependency> 

       <build> 
       <plugin> 
       <groupId>org.mortbay.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>8.1.12.v20130726</version> 

       <configuration> 
        <scanIntervalSeconds>5</scanIntervalSeconds> 
        <webApp> 
         <contextPath>myfashions</contextPath> 
         <defaultsDescriptor> 
          ${basedir}/src/main/resources/webdefault.xml 
         </defaultsDescriptor> 
        </webApp> 
       </configuration> 
      </plugin> 
      </build> 

나는이 사용하는 부두를 실행

포함 생각 인 IntelliJ에서 포트 8081으로 실행을, 내 appplication 포트 8080의 또 다른 내장 부두 서버를 시작하고 요청을 처리한다.

내가 바람둥이에서 생성 된 WAR 모든 부두 종속성 및 플러그인을 제거하고 배포

, 내가

013-09-06_01:21:21 ERROR o.a.c.t.http.HTTPTransportFactory - Cannot find any registered HttpDestinationFactory from the Bus. 
Sep 06, 2013 1:21:21 AM org.springframework.web.context.ContextLoader initWebApplicationContext 
SEVERE: Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'baseApi': Invocation of init method failed; nested exception is org.apache.cxf.service.factory.ServiceConstructionException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482) 

으로 오류를 얻고 것은 내가 포함 된 부두를 시작하지 않고 내부의 바람둥이를 실행 WAR을 genarate 할 수 있도록하는 방법을 제안 해주십시오.

답변

0

마지막으로 jaxrs-server 주소 구성에서 절대 위치를 제거하고 상대 컨텍스트 경로를 유지할 때 작동합니다.

0

사용하는 mvn 명령과 POM 파일에 관한 자세한 정보를 제공해주십시오.

제공된 정보에 따라 "mvn * install"을 사용하고 있다고 가정합니다. "mvn clean compile package"를 사용하십시오. 이것을 사용하면 WAR 파일 만 만들어져 Tomcat 서버로 복사 할 수 있습니다.

또한 배치에 JETTY를 사용하지 않으려면 POM 내에서 JETTY를 제외해야합니다. 그렇지 않으면 항상 클래스 경로에 존재하게됩니다. 제외 샘플 -

<exclusions> 
       <exclusion> 
        <groupId>org.eclipse.jetty</groupId> 
        <artifactId>jetty-continuation</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.eclipse.jetty</groupId> 
        <artifactId>jetty-io</artifactId> 
       </exclusion> 
</exclusions> 

이러한 JAR은 CXF 번들에 포함되어 있습니다. Checkout maven 제외 자세한 내용은

+0

나는 당신의 제안에 따라 주셔서 대단히 감사합니다. 그러나 여전히 문제는 해결되지 않았고, POM과 오류로 제 질문을 업데이트했습니다. 친절하게 모든 해결책을 확인하고 제안 해주십시오. – teja1905

+0

질문에 약간 혼란 스럽습니다. 바람둥이에 전쟁을 가하고 싶다면 왜 "돌풍 : 달려라"라고했을까요? 왜 "mvn compile package"를 실행하여 war 파일을 만든 다음 eclipse-tomcat에서 실행하거나 tomcat (webapp에서 복사)에서 직접 실행하십시오. 또한 좀 더 자세하게 스택 트레이스를 게시 할 수 있습니까? 나는 예외의 근본 원인을보고 싶다. 이 링크가 도움이 될 수 있습니다 - http://stackoverflow.com/questions/1872202/cxf-jax-rs-is-causing-busexception – hImAnShU