【问题标题】:Generating ws client using WSDL in java6在 java6 中使用 WSDL 生成 ws 客户端
【发布时间】:2015-11-12 06:54:33
【问题描述】:
我是第一次使用 wsdl。如果这是一个非常新手的问题,我深表歉意。
我有一个用于 Web 服务的 wsdl 文件。我想创建一个 Java 控制台应用程序来使用该服务。
我使用 wsimport 工具和 wsdl 生成了类文件。已经生成了大量的类文件。
如果我需要来自 web 服务提供商的进一步文档来实现服务,或者关于使用生成的文件有任何转换,我现在很困惑。
任何建议都会非常有帮助。
【问题讨论】:
标签:
java
web-services
soap
wsdl
【解决方案1】:
WSDL 文件已经有你需要的完整定义,包括每个方法的数据类型、请求和响应包装器等。这意味着,既然你已经通过 wsimport 生成了客户端实现,你唯一要做的就是将此文件导入您当前的 java 项目并使用它来访问网络服务。
您可以找到大量示例,了解如何使用此生成的客户端代码。这里是one of them。简而言之,您有两个主要的生成类,代表 Web 服务:一个带有 @WebService 注释的接口和一些带有 @WebServiceClient 注释的服务。您只需要从服务中获取接口的实例,例如:
HelloWorldImplService helloService = new HelloWorldImplService();
HelloWorld hello = helloService.getHelloWorldImplPort();
HelloWorld 是一个接口,它提供了来自 WSDL 的 Web 服务的所有方法。然后你会得到它,你可以用它来调用网络服务。只是不要忘记,如果不是您需要的,您可能必须覆盖 Web 服务客户端的默认 IP 地址。
您可能需要的唯一附加文档是一些提供有关 Web 服务业务目的信息的文档,这些文档可能对与此 Web 服务交互的开发人员有用。
【解决方案2】:
只需从带有@WebServiceClient注解的类中创建一个服务客户端对象,并带参数调用相关方法。
WebServiceClient client = new WebServiceClient();
AnswerType answer = client.GetSoap().theMethodYouWantUse(some_parameters);