如何以编程方式将绑定添加到CXF客户端代码



我正在编写一个ANT任务,试图为CXF Web服务创建一个代理,如下所示:

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

如果我在Eclipse中将它作为Main方法运行,它运行得很好。

然而,如果我尝试作为ANT任务运行,它总是失败,并出现以下错误:

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

如何以编程方式将此绑定添加到上述代码中?

根据这一点,cxf.xml文件需要位于客户端的类路径中,在本例中为Ant。

我找到了一个不需要将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);

相关内容

  • 没有找到相关文章

最新更新