2009-09-04 3 views
3

JBoss 4.2.2에서 구체적으로 javax.jws.WebService.wsdlLocation을 사용할 수 있습니까? (이것은 웹 서비스로 전개 된 EJB3 빈을위한 것이다).javax.jws.WebService.wsdl 위치 jboss 4.2.2

지원되는 문서가 있지만 형식은 정확히 무엇입니까? 나는 http를 시도했다, 나는 상대 URL을 시도했다. JBoss가 어떻게 그것을 URL, EJB의 클래스 패스에있는 것, 뭔가 다른 것으로 찾습니까?

답변

1

JBWS-2206 및 관련 문제 JBWS-1714JBWS-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이 어떻게 나타나야하는지 정의합니다.

+0

EJB3의 경우 JBWS-2206에 대한 링크가 트릭을 수행했습니다. META-INF를 참조해야한다는 것은 놀라운 일입니다. 그러나 그것은 내가 추측하지 못했던 숨겨진 비밀입니다. – Yishai

+0

예, JAX-WS에는 처음에는 분명하지 않은 것들이 많이 있습니다. 비슷한 경우가 발생하면 JAX-WS 2.0/2.1 사양 사본을 다운로드하십시오. –

+0

그런데 JAX-WS 2.0 스펙에서는 다음과 같이 말하고 있습니다. ** 엔드 포인트 구현 클래스에있는 wsdlLocation 주석 요소의 값은 상대 URL이어야합니다. 그것이 가리키는 문서는 반드시 응용 프로그램과 함께 포장되어야합니다. 또한, 아래 5.2.5.4 절 ("응용 프로그램 지정 서비스")의 요구 사항을 준수해야합니다. ** –

관련 문제