JBWS-2206 및 관련 문제 JBWS-1714 및 JBWS-1837을 참조하십시오.
수집 할 수있는 정보에서 JBoss는 내부적으로 JAX-WS의 Metro (RI)를 사용합니다. 이 점에 대해서는 잘 모르겠지만 wsdllocation 속성을 통해 클래스 로더를 사용하면 Metro가 WSDL을 읽음으로써 WSDL을 배치하기 위해 EJB JAR의 META-INF/wsdl을 안전한 선택으로 만듭니다. The example file in JBWS-2206은 참조 용으로 도움이됩니다.
업데이트
how to provide your own WSDL is present in the JBoss forums에 철저한 개요.
업데이트 # 2
JAX-WS 스펙은,이 경우 이유에 더 나은 아이디어를 제공합니다. 섹션에서 은 @WebService (그러나 wsdlLocation) 및 메타 데이터의 5.2.5.3를 사용하여, 하나는
엔드 포인트 구현 클래스에 그러나 wsdlLocation 주석 요소의 값이있는 경우, 상대해야한다는 주장 사양을 찾을 수 있습니다 URL. 그것이 가리키는 문서는 반드시 응용 프로그램과 함께 포장되어야합니다. 또한, 아래의 섹션 5.2.5.4 ("응용 프로그램 지정 서비스")의 요구 사항을 준수해야합니다 ( ). 가져 오기 및 XSD를 : 가져 오기 문을 로컬 문서를 가리 로컬 문서에
또한,
JAX-WS 구현은 모든 WSDL의 위치 속성을 패치해야한다고. 구현시 다른 위치 속성을 패치해서는 안됩니다 (MUST NOT).
생성 된 WSDL이 어떻게 나타나야하는지 정의합니다.
EJB3의 경우 JBWS-2206에 대한 링크가 트릭을 수행했습니다. META-INF를 참조해야한다는 것은 놀라운 일입니다. 그러나 그것은 내가 추측하지 못했던 숨겨진 비밀입니다. – Yishai
예, JAX-WS에는 처음에는 분명하지 않은 것들이 많이 있습니다. 비슷한 경우가 발생하면 JAX-WS 2.0/2.1 사양 사본을 다운로드하십시오. –
그런데 JAX-WS 2.0 스펙에서는 다음과 같이 말하고 있습니다. ** 엔드 포인트 구현 클래스에있는 wsdlLocation 주석 요소의 값은 상대 URL이어야합니다. 그것이 가리키는 문서는 반드시 응용 프로그램과 함께 포장되어야합니다. 또한, 아래 5.2.5.4 절 ("응용 프로그램 지정 서비스")의 요구 사항을 준수해야합니다. ** –