总的来说,我是网络服务的新手。我正在尝试编写一个 Java 独立客户端,它可以从网络服务获得响应。
我尝试搜索 SO 和 Google,但现在我更加困惑了。以下是我广泛浏览的链接。
- Simple (standalone) Java SOAP web service client from WSDL using Maven
- Java webservice (soap) client - use certificates
- java webservice client
- https://cwiki.apache.org/CXF20DOC/how-do-i-develop-a-client.html
- Java Webservice Client (Best way)
- Steps in creating a web service using Axis2 - The client code
我有一个像这样的网址:http://api.something.com/remote/wsdl/SomeEncryptedText
我还有一个类似 SOAP 的请求:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<AuthUsername>someName@someWhere.com</AuthUsername>
<AuthPassword>mypassword</AuthPassword>
<Sid>12121</Sid>
<DynamicProductFeedsRequest xmlns="http://api.something.com/remote/SomeEncryptedText">
</DynamicProductFeedsRequest>
</soap12:Body>
</soap12:Envelope>
有了这个,我如何编写一个独立的 Java 客户端,我想在稍后阶段将其与某些 Web 应用程序集成?
从前面提到的资源来看,有多种软件可供选择:SoapUI、WSDL2Java、Apache Axis、Maven Plugin、JAX-WS、Apache CXF。
我用了http://www.soapclient.com/soaptest.html在上面提到的 SO 答案之一中,我能够在浏览器上获得完美的 html/xml 文件。
现在我很困惑我应该使用哪个软件?链接中的信息很少,我无法将它们相互关联,因为我对 SOA 一无所知。
谁能告诉我编写一个独立的 Java 客户端的高级步骤,该客户端接受 WSDL URL 和 SOAP 请求并将其输出给我?
如果我遗漏了任何信息,请告诉我。
最佳答案
这个问题完全取决于以下内容:
- Java 编译器的 JDK 版本。
- 您的 WSDL 版本(有 1.0、1.2 和 2.0)。
基本上,如果您使用 Java annotations要生成 Web 服务,则需要 Java 5 相关的 Web 服务库(支持注解)。
关于使用带注释的 Java Web 服务 (JAX-WS) 的一些文章:
我将从使用 不 支持注释的 Java 生成 Web 服务客户端开始。为 Java 生成 WSDL 的著名客户端是 Apache Axis (最后一个版本是 2006 年 4 月 22 日发布的 1.4)。这基本上采用 WSDL 定义并将其生成回客户端。它支持旧版本的 WSDL (1.0),如果您使用较新版本的 WSDL(1.2 和 2.0),它会崩溃。
这基本上是做什么的,它获取您的 WSDL 并生成一个与您的 Web 服务通信的 java 代理。它可以允许基于 RPC 以及基于 XML 的通信。
对于支持注解的 Java,有两种有效的方法:
- 使用 Java 自己的 wsimport 命令(可执行文件位于
JDK_HOME/bin/
文件夹下)。 - 使用第 3 方库,例如 Apache Axis 2 (它有效地取代了 Apache Axis 并支持 WSDL 2.0 版)或 Apache CXF (支持最高 1.2 的 WSDL)。
要使用 wsimport,您基本上需要转到 shell 命令(或编写脚本)并有效地执行以下操作:
wsimport -d [outputdir] wsdl_file
您的 java 代理将在 [outputdir]
文件夹中找到。
wsimport
是在JDK 1.6 中找到的(不知道之前的版本有没有)。更多来源here , 和 here .
对于 Apache Axis、Apache Axis 2 或 Apache CXF,有一个 WSDL2Java
类文件可以生成源代码。
这是关于如何在 Apache CXF 中使用 WSDL2Java
的指南在Apache Axis 2 .
我希望这能在某种程度上帮助你,就像我花了大约 30 分钟的时间做这件事一样。 :-)
关于java - 独立的 Java Web 服务客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666574/