0

我已经在 Eclipse 中使用Apache CXF在 Java 中创建了一个 Webservice ,现在我必须创建一个 WebService 客户端应用程序来使用和调用它。我一直在寻找一种方法,我发现客户端总是依赖于服务器的 Java 类。

问题是我必须在其他 Java 环境中开发一个客户端类。我的问题是:有没有办法开发一个独立于 web 服务服务器包的客户端类,只使用WSDL文件?

谢谢 :)

4

2 回答 2

0

您可以将请求作为 XML 请求发送到 Web 服务 API。只有您需要使用正确的标题和正文来构造 SOAP 投诉请求。通过使用 SoapUI,您可以生成 XML 请求结构,然后在您的应用程序中重用它。

如果你使用 Jax-RS(REST APIs),即使是 http 方法也可以

[更新]

如果您对如何创建客户端类感到困惑,那么您将遵循此

  1. 使用 wsimport

    >  http : //hostname :port/wsdl.url on command line to create proxy classes
    
  2. 创建jar文件生成代理类

  3. 将jar文件添加到类路径
  4. 使用 Service API 构建端点,然后调用服务。
  5. 下面给出了示例测试客户端。

    try {
    
        URL wsdlURL = new URL("http://localhost:8082/cxf/services/yourservice?wsdl");
    
        QName SERVICE_NAME = new QName("http://package.name/","PORTNAme");
    
        Service service = Service.create(wsdlURL, SERVICE_NAME);
    
        client = service.getPort(PORTInterface.class);
    
        client.executeYourMethod()
    
    } catch (Exception e) {
    
        // TODO Auto-generated catch block
    
        e.printStackTrace();
    
    }
    

  1. 网址是 WSDL 网址
  2. 要创建 QName,需要提供服务接口的命名空间(通常是包的名称)和端口名称,您可以在绑定部分的 WSDL 中找到这些名称。
  3. 还需要识别代理类(名称类似于端口名称)

干杯萨西什

于 2013-04-16T11:26:54.490 回答
0

您可以借助Apache CXF Link wsdl to java 工具。wsdl2java- 获取 WSDL 文档并生成完全注释的 Java 代码,从中实现服务。

您也可以借助 eclipse 插件。

Eclipse插件生成java类

于 2013-04-16T11:25:03.983 回答