【问题标题】:How to create a java client that consumes a webservice?如何创建一个使用 Web 服务的 Java 客户端?
【发布时间】:2013-01-18 12:36:21
【问题描述】:

好吧,我创建了一个可以在本地访问的网络服务:

http://127.0.0.1:8080/myapp/WSPA?wsdl

现在我需要通过从另一个 java 应用程序调用它来测试我的 web 服务,以验证它是否正常工作。我已经看到它在 Eclipse 上使用来自 JBoss 插件的 WebService Client 工作。但问题是我有一个方法可以接收包含字符串和字节数组的 SoapFile 列表。我需要验证它是否工作。

@XmlType
public class SoapFile implements Serializable {

  private String fileName;
  private byte[] fileData;

  public String getFileName() {
     return fileName;
  }

  public void setFileName(String fileName) {
     this.fileName = fileName;
  }

  public byte[] getFileData() {
     return fileData;
  }

  public void setFileData(byte[] fileData) {
     this.fileData = fileData;
  }
}

我还没有找到如何创建一个使用该服务进行测试的简单 Web 服务客户端。 我想要一些指导......教程或一些解释如何一步一步制作它的网站。 如何为这个 web 服务创建一个 java 客户端?

【问题讨论】:

  • 使用 httpclient 库为您的服务编写客户端。
  • 我认为大多数 IDE 都有一个使用 wsimport 的内置选项,让您的任务变得非常容易。

标签: java web-services wsdl


【解决方案1】:

Igor,只需将wsimport 与您的 Web 服务 url 一起使用 - 您将获得生成的 WebService 类,然后以这种方式调用服务:

ServiceGenerateFromWSImportWhichIsTheSameAsYour iService = 
   new ServiceGenerateFromWSImportWhichIsTheSameAsYour().
            getServiceGenerateFromWSImportWhichIsTheSameAsYourPort();

// now on iServie instance you can invoke method from your webservice
// but you have to use stub classes generated by wsimport

iService.myMethodWhichGetFileList(List<SoapFileStubGeneratedClass> sopaFiles);

wsimport 是 jdk 安装文件夹中的标准 java 工具

更多关于wsimport工具的信息你可以在这里找到:

wsimport doc

在您的情况下使用 wsimport 将是:

wsimport -p generated_classes -s generated_sources http://127.0.0.1:8080/myapp/WSPA?wsdl

您会在文件夹generated_classes 中找到.class 文件,在文件夹generated-sources 中找到.java 文件

【讨论】:

  • SOAPUI(免费版或付费版)也很有帮助。 SoapUI 也可以生成客户端文件,对测试很有用。
  • 我已经尝试过 wsimport 并收到此消息:找不到目录:生成的源
  • 所以先创建这些目录
  • 一个错误-p generated_class表示要创建包名(该名称的文件夹只是创建包结构的效果)所以使用-p your_app_name会更好
  • 我已将 generated_class 更改为我的项目名称...现在我得到“找不到目录:generated_sources”
【解决方案2】:

您有 WSDL 文件吗?如果是,那么您可以使用 Eclipse 之类的 IDE 来生成客户端存根。

下面的链接也是一个很好的起点

http://docs.oracle.com/cd/E17802_01/webservices/webservices/reference/tutorials/wsit/doc/Examples_glassfish6.html

【讨论】:

  • 太棒了...感谢分享此链接
【解决方案3】:

带有wsimport 的 Jax-WS 的“Hello World”教程你能找到here

提姆

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2010-11-20
    • 1970-01-01
    相关资源
    最近更新 更多