我正在使用camel-cxf库来尝试创建一个非常基本的Web服务客户端。
我得到的错误是:
Message part {http://tariffservice.agw.mycompany.com/}getTariffPrice
was not recognized. (Does it exist in service WSDL?):
WSDL是由.NET人员创建的,因为如果我以Java方式生成WSDL,他们的方面就无法工作。因此,如果我查看WSDL,我会看到该方法的正确名称是:GetTariffPrice。事实上,在任何注释中都没有小写的getTariffPrice。它只是方法名称的小写。
所以我感觉到了这个问题,但我不知道在哪里修复它。每次编译时,CXF都会自动生成文件。是否有绑定文件?
----编辑:回复Willem的q
我使用了camel-master cxf示例,无论出于何种原因,它都在代码中。 WSDL到处都有GetTariffPrice,这让我觉得如果我能让CXF生成GetTariffPrice而不是getTariffPrice,它可能会起作用
private static final String URL = "http://localhost:8080/tariffAdmin/services/tariffEndpoint";
protected static ITariffService createCXFClient() {
// we use CXF to create a client for us as its easier than JAXWS and works
ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
factory.setServiceClass(ITariffService.class);
factory.setAddress(URL);
return (ITariffService) factory.create();
}
ITariffService service = createCXFClient();
TariffPriceResponse response = service.getTariffPrice(request);
----进一步编辑:
我告诉Maven不要构建我的类,然后在生成的客户端类中将方法名称从getTariffPrice更改为GetTariffPrice。我现在收到这条消息:
Unexpected wrapper element {http://tariffservice.agw.company.com/}GetTariffPrice found. Expected {http://agw.company.com/tariffservice}GetTariffPrice.
嗯。