2011-06-23 14 views
1

私は以下のようにCXF Webサービスのプロキシを作成しようとするANTタスクを書いています:私は、Eclipseでの主な方法として、それを実行する場合CXFクライアントコードにバインディングをプログラムで追加するにはどうすればよいですか?

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
factory.setServiceClass(ProjectApi.class); 
factory.setAddress("http://sasdk1/protex-sdk/v5_0/project"); 
ProjectApi projectApi = (ProjectApi)factory.create(); 

、それが正常に動作します。

私はANTタスクとして実行しようとした場合しかし、それは常に次のエラーで失敗します。

org.apache.cxf.BusException: 
    No binding factory for namespace http://schemas.xmlsoap.org/soap/ registered 

どのように私はプログラム的に上記のコードには、この結合を追加することができますか?

答えて

0

thisによれば、cxf.xmlファイルはクライアントのクラスパスにある必要があります。この場合Antです。

0

cxf.xmlファイルをAnt libディレクトリに配置する必要がない回避策が見つかりました。

URL wsdlURL = null; 

try { 
wsdlURL = new URL("http://sasdk1/protex-sdk/v5_0/project?wsdl"); 
} catch (MalformedURLException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
System.exit(-1); 
} 

QName SERVICE_NAME = new QName(
      "urn:protex.company.com:sdk:v5.0:project", 
      "ProjectApiService"); 
Service service = Service.create(wsdlURL, SERVICE_NAME); 

ProjectApi projectApi = service.getPort(ProjectApi.class); 
関連する問題