所以我尝试使用 JaxWsDynamicClientFactory 来动态创建 SEI 类。运行以下代码
JaxWsDynamicClientFactory def = JaxWsDynamicClientFactory.newInstance();
def.createClient("http://localhost:8080/TheTestService/TestService?wsdl");
生成类:
com.mycompany.project.service.GetProducts
com.mycompany.project.service.GetStatus
跑步:
wsdl2Java -d "C/:outputdir" "http://localhost:8080/TheTestService/TestService?wsdl"
生成类
com.mycompany.project.service.ServiceInterface
com.mycompany.project.service.GetProducts
com.mycompany.project.service.GetStatus
com.mycompany.project.service.impl.ServiceInterface
此外,当我尝试打电话时
client.invoke("getProducts", 0);
我得到:
org.apache.cxf.common.i18n.UncheckedException: No operation was found with the name {http://impl.service.project.mycompany.com/}getProducts.
我想这是有道理的,因为在 impl.service.project.mycompany.com 上不会生成任何名为 getProducts 的内容。但是,自从我编写了 Web 服务后,我就知道 Web 服务接口具有 getProducts(int id) 方法。
我在这里做错了什么?根据 CXF 文档,动态客户端工厂使用与 wsdl2Java 工具相同的代码生成器。如果是这样,为什么不生成相同的类?
谢谢,
查克