java调用webservice示例

Java调用WebService服务的方法主要有以下几种:

1、使用JAX-WS(Java API for XML Web Services)

java调用webservice示例

JAX-WS是Java SE的一部分,它提供了一组API,用于创建和调用Web服务,JAX-WS支持两种类型的Web服务:RPC(远程过程调用)和文档导向的Web服务,RPC风格的Web服务通常用于客户端/服务器应用程序,而文档导向的Web服务则用于发布和发现基于文档的信息。

要使用JAX-WS调用WebService服务,需要遵循以下步骤:

1、1 生成代理类:使用wsimport工具从WSDL文件生成Java代理类。

1、2 创建WebService客户端:使用javax.xml.ws.Service接口创建WebService客户端。

1、3 调用WebService方法:通过代理类的对象调用WebService方法。

java调用webservice示例

示例代码:

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
public class JAXWSClient {
    public static void main(String[] args) throws Exception {
        // 1. 创建URL对象,指向WSDL文件的位置
        URL wsdlURL = new URL("http://localhost:8080/mywebservice?wsdl");
        // 2. 创建QName对象,指定服务的名称和命名空间
        QName serviceName = new QName("http://example.com/", "MyWebService");
        QName portName = new QName("http://example.com/", "MyWebServicePort");
        // 3. 创建Service对象,传入WSDL文件的URL和服务名称、端口名称
        Service service = Service.create(wsdlURL, serviceName);
        // 4. 调用getPort方法,获取服务的端口对象
        MyWebService myWebService = service.getPort(portName, MyWebService.class);
        // 5. 调用WebService方法,传入参数并获取返回值
        String result = myWebService.myMethod("Hello, World!");
        System.out.println("Result: " + result);
    }
}

2、使用Apache CXF(Apache Software Foundation's Contract First Web Services)

Apache CXF是一个开源的实现SOAP协议的Web服务框架,它提供了一套丰富的API,用于创建和调用Web服务,CXF支持多种编程语言,包括Java、Python、Ruby等。

要使用Apache CXF调用WebService服务,需要遵循以下步骤:

2、1 添加CXF依赖:在项目的pom.xml文件中添加Apache CXF的依赖。

java调用webservice示例

2、2 生成客户端代码:使用cxf-codegen-plugin插件从WSDL文件生成客户端代码。

2、3 创建WebService客户端:使用生成的客户端代码创建WebService客户端。

2、4 调用WebService方法:通过客户端对象调用WebService方法。

示例代码:

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.wsdl11.WSDLManagerImpl;
import javax.xml.namespace.QName;
import java.util.List;
import java.util.Map;
public class CXFClient {
    public static void main(String[] args) throws Exception {
         // 1. 创建WSDLManager对象,用于处理WSDL文件的加载和解析
        WSDLManagerImpl wsdlManager = new WSDLManagerImpl();
        wsdlManager.setWsdlLocation("http://localhost:8080/mywebservice?wsdl");
        wsdlManager.setServiceClass(MyWebService.class);
        wsdlManager.setEndpointAddress("http://localhost:8080/mywebservice");
        wsdlManager.setFeatures(new String[]{"javax.wsdl.Binding"}); // 如果需要,可以设置其他特性,如安全、事务等
        wsdlManager.initialize();
        // 2. 创建JaxWsProxyFactoryBean对象,用于生成代理类实例
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setServiceClass(MyWebService.class); // 设置服务接口类型
        factory.setAddress("http://localhost:8080/mywebservice"); // 设置服务的地址和端口号
        factory.setWsdlDocumentationLocation("http://localhost:8080/mywebservice?wsdl"); // 如果需要,可以设置WSDL文档的位置和版本信息
        factory.setDataBindingId("java:compact"); // 如果需要,可以设置数据绑定的类型和版本信息,如javax.xml.datatype等
        factory.setFeatures(new String[]{"javax.xml.ws.soap"}); // 如果需要,可以设置其他特性,如安全、事务等
        factory.setEndpointInterface(MyWebServicePortType.class); // 如果需要,可以设置服务的端口类型和名称,如MyWebServicePortType等
        factory.setBus(new SpringBus()); // 如果使用Spring框架,可以设置Spring上下文的引用,以便进行依赖注入等操作
        factory.afterPropertiesSet(); // 初始化工厂对象后,会触发一系列事件,如加载WSDL文件、生成代理类等操作
        MyWebService myWebService = (MyWebService) factory.create(); // 通过工厂对象生成代理类实例,并转换为服务接口类型或端口类型等对象类型

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/325123.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-02-19 21:09
Next 2024-02-19 21:14

相关推荐

  • java通过xfire调用金蝶K3 webservice接口返回null

    技术介绍在Java中,通过XFire框架调用WebService接口是一种常见的实现方式,XFire是一个轻量级的SOAP框架,它提供了简单易用的API,可以方便地实现客户端与WebService之间的通信,金蝶K3是一款集成了ERP功能的企业管理软件,它提供了丰富的WebService接口供开发者使用,本文将介绍如何使用Java和X……

    2023-12-17
    0141
  • java调用webservice示例

    import java.net.URL;public static void main(String[] args) throws Exception {. wsdl");Service service = Service.create(wsdlUrl, serviceName);MyWebService myWebService = service.getPort(MyWebService.

    2023-12-10
    0135
  • java webservice接口调用要注意什么

    A:如果一个WebService服务没有提供WSDL文件,那么我们无法直接通过WSDL文件生成客户端代理类来调用该服务,我们可以通过其他方式获取该服务的地址和接口信息,一种常见的方法是使用浏览器或其他工具来抓取WSDL文件的内容,并将其保存到本地或数据库中,然后根据抓取到的信息手动编写客户端代理类或使用第三方工具自动生成代理类,另一种方法是使用反序列化技术直接从已发布的WebService服务

    2023-12-18
    0122
  • webservice的调用方式

    WebService是一种基于XML的通信协议,它允许不同的应用程序之间进行交互。Java中调用WebService接口有五种方式,包括通过eclipse等直接生成Client、利用dos命令生成代码、利用apache的AXIS直接调用远程的web service、service编程实现和使用Java API。这些方法都可以用来调用WebService接口,具体选择哪种方式取决于您的需求和技术水平。

    2024-01-24
    0175
  • 在SpringSide实现XFire Webservice认证

    在SpringSide实现XFire Webservice认证随着Web服务技术的不断发展,越来越多的企业开始使用Web服务作为其业务系统的重要组成部分,为了保证Web服务的安全性,认证和授权成为了必不可少的环节,本文将介绍如何在SpringSide中实现XFire Webservice的认证。1、认证与授权简介认证(Authenti……

    2024-01-23
    0186
  • Java WebService 简单实例(附实例代码)

    Java WebService 简单实例(附实例代码)技术介绍Java WebService 是一种基于 Java 的网络通信协议,它允许不同的应用程序之间进行数据交换和通信,Java WebService 通常使用 XML 或 JSON 作为数据格式,通过 HTTP 协议进行传输,在本文中,我们将介绍如何使用 Java 创建一个简单……

    2024-01-03
    0118

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入