2010-12-02 27 views
4

私のアプリケーションでは、多くのWebサービスを使用しています。 WSDLは変わらないので、私は自分のプロジェクトにWSDLファイルを統合しました。 CXFのWSDL2Javaツールを使用すると、WSDLの絶対パスはハードコードされます。CXF Webサービスクライアントでの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

は1つが、引数としてWSDLの場所を受け取り、ポータブルクライアントになることができ、クライアント空のWSDLの場所

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

を生成するために何ができるかです。それで、私は相対的なパスを使うことを望んでいたのです。ポータブルクライアントを実現するには

+0

このメソッドでは、WSDLに存在するポリシーは使用されません。 – Abbadon

関連する問題