2010-12-02 3 views
4

내 응용 프로그램에서는 많은 웹 서비스를 사용합니다. WSDL이 변경되지 않기 때문에 프로젝트에 WSDL 파일을 통합했습니다. CXF에서 WSDL2Java 도구를 사용하면 WSDL 위치 절대 경로가 하드 코드됩니다.CXF Webservice 클라이언트의 WSDL에 대한 상대 경로

내 질문은 @WebserviceClient Annotation의 "wsdlocation"매개 변수를 상대 경로로 변경하는 방법입니다. 여기

은 예입니다

@WebServiceClient(name = "Time", 
        wsdlLocation = "file:/C:/Users/dominik/Documents/NetBeansProjects/Webservices/src/wsdl/Time.wsdl") /*I want this path to be relative */ 
public class Time extends Service { 

답변

11

오늘 나는 이것을 올바르게 수행하는 방법을 알았습니다. 그냥 파일을 배치하면 자원 폴더 다음은 다음과 같이 상대적으로 그들에게 참조 그러나 wsdlLocation를 사용할 수 있습니다

<wsdlLocation>classpath:wsdl/myservice.wsdl</wsdlLocation> 

여기에 비슷한 질문에 내 대답을 참조하십시오 https://stackoverflow.com/a/9875701/1190144

0

WSDL2Java의 도구가 배치됩니다 정확한 문자열을 지정하는 데 사용할 수있는 -wsdlLocation 플래그가 있습니다. 여기

+0

을 내가 충분히 분명하지 않다 생각합니다. wsdlLocation을 상대 경로로 설정하려고합니다. –

1

한 빈 WSDL 위치

<wsdlOptions> 
    <wsdlOption> 
    <wsdl>${basedir}/src/main/wsdl/service.wsdl</wsdl> 
    <extraargs> 
     <extraarg>-wsdlLocation</extraarg> 
     <wsdlurl /> 
    </extraargs> 
    </wsdlOption> 
</wsdlOptions> 

클라이언트는 다음 인수로 WSDL 위치를 수신하여 휴대용 클라이언트가 될 수를 생성 할 수있는 것입니다. 그것이 내가 상대 경로를 사용하고자하는 이유입니다. 휴대용 클라이언트를 얻으십시오.

+0

이 메서드를 사용하면 WSDL에있는 정책이 사용되지 않습니다. – Abbadon