2010-12-15 3 views
0

나는 다음과 같은 환경했다 : 5.5.30 등록 JAX-WS의 웹 서비스는 프로그램

  • 자바 6
  • JAX-WS RI 2.1
  • 내 주요 웹 응용 프로그램이 만들어

    • Tomcat을 몇 가지 더 작은 자바 프로젝트의 예 :

      • 메인 애플리케이션 on (웹 프로젝트) : 일부 구성 파일을 제외하고 코드가 없습니다.
        • ClientModule (자바 프로젝트) : 청구 관련 웹 서비스 (과금 처리 루틴)
        • ParameterModule을 (자바 프로젝트)가 :이 클라이언트와 관련된 웹 서비스 (추가, 변경 및 클라이언트를 제거)
        • 이 BillingModule (자바 프로젝트)
        • 있다 응용 프로그램 매개 변수와 관련된 웹 서비스 (변경 응용 프로그램 설정)
        • 그리고 몇 가지 다른 모듈

      는 지금 모든 모듈에서 웹 서비스는 "S에 추가된다 un-jaxws.xml "을 MainApplication에 저장하고"web.xml "에 설정된 JAX-WS 서블릿에 의해 자동으로 등록됩니다. 그러나 응용 프로그램의 아이디어는 실수를 피하기 위해 구성 파일에 최소한의 변경을 사용하여 필요한 경우 일부 모듈없이 응용 프로그램을 배포 할 수 있도록하는 것입니다.

      내 생각은 META-INF 서비스를 만들고 애플리케이션 초기화시 각 모듈에서 이러한 서비스를 찾은 다음 각 Java 프로젝트에서 내 자신의 "sun-jax.xml"을 준비하고 수동으로 웹 서비스를 등록하는 것이었다.

      원하는 모듈 만 배포 할 수있을뿐 아니라 MainApplication을 배포 할 때 작업중인 모듈 만 배포 할 수 있으므로 개발이 쉬워졌습니다.

      그렇다면 이러한 웹 서비스를 수동으로 (또는 프로그래밍 방식으로) 어떻게 등록합니까?

      세르지오

    +0

    지금 구현 한 것을 시도한 결과 "com.sun.xml.ws.server.ServerRtException : 서버 런타임 오류 : java.net.BindException : 주소가 이미 사용 중입니다 : 바인드"가 발생했습니다. 아마 java6의 build-in http 서버를 사용하려고합니다. –

    답변

    1

    는 동적으로 javax.Servlet.ServletContextListener 인터페이스를 구현하는 내 수업에서 "태양 jaxws.xml"를 작성하여이를 달성 할 수 있었다.

    관련 문제