首頁 Java java教程 方法有哪些用於Java呼叫WebService服務

方法有哪些用於Java呼叫WebService服務

Feb 19, 2024 pm 01:48 PM
呼叫方法 java api

方法有哪些用於Java呼叫WebService服務

標題:Java呼叫WebService服務的方法及程式碼範例

摘要:本文介紹了Java呼叫WebService服務的幾種方法,並提供了具體程式碼範例。包括使用axis2產生客戶端程式碼、使用JAX-WS產生客戶端程式碼、使用Apache CXF產生客戶端程式碼以及使用Spring Boot整合WebService服務。透過這些方法可以方便地實作Java對WebService服務的呼叫。

正文:

  1. 使用axis2產生客戶端程式碼

Axis2是一個開源的WebService框架,透過使用axis2產生客戶端程式碼可以簡化調用WebService服務的過程。

首先,在Eclipse中建立一個Java項目,並匯入axis2相關的jar套件。

接下來,在專案的根目錄下建立一個名為"axis2Client"的包,並在該套件下新建一個類,命名為"Axis2Client"。

下面是一個使用axis2呼叫WebService服務的範例程式碼:

package axis2Client;

import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.client.async.AsyncResult;
import org.apache.axis2.client.async.Callback;
import org.apache.axis2.client.async.CallbackHandler;
import org.apache.axis2.client.async.InvocationCallback;
import org.apache.axis2.client.async.Result;
import org.apache.axis2.transport.http.HTTPConstants;

public class Axis2Client {
    public static void main(String[] args) {
        try {
            // 创建ServiceClient对象
            ServiceClient client = new ServiceClient();

            // 设置服务地址
            Options options = new Options();
            options.setTo(new EndpointReference("http://localhost:8080/axis2/services/MyService"));

            // 设置超时时间(可选)
            options.setTimeOutInMilliSeconds(60000);

            // 设置请求SOAP头(可选)
            options.setProperty(HTTPConstants.CHUNKED, Constants.VALUE_FALSE);
            options.setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Constants.VALUE_TRUE);

            // 设置认证信息(可选)
            options.setUserName("username");
            options.setPassword("password");

            // 将配置应用到ServiceClient对象
            client.setOptions(options);

            // 调用WebService方法
            Object[] result = client.invokeBlocking(
                    new QName("http://service.namespace.com/", "operationName"),
                    new Object[] { "parameter" },
                    new Class[] { String.class });

            // 处理返回结果
            String response = (String) result[0];
            System.out.println(response);
        } catch (AxisFault e) {
            e.printStackTrace();
        }
    }
}
登入後複製
  1. #使用JAX-WS產生客戶端程式碼

Java API for XML Web Services (JAX-WS)是一個用於開發基於Soap的Web服務的Java標準,透過使用JAX-WS產生客戶端程式碼可以更方便地呼叫WebService服務。

首先,在Eclipse中建立一個Java項目,並匯入JAX-WS相關的jar套件。

接下來,在專案的根目錄下建立一個名為"jaxwsClient"的包,並在該套件下方新建一個類,命名為"JaxwsClient"。

下面是一個使用JAX-WS呼叫WebService服務的範例程式碼:

package jaxwsClient;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;

public class JaxwsClient {
    public static void main(String[] args) {
        try {
            // 创建服务的URL对象
            URL url = new URL("http://localhost:8080/MyService?wsdl");

            // 创建服务对象
            QName qname = new QName("http://service.namespace.com/", "MyService");
            Service service = Service.create(url, qname);

            // 获取服务的端口对象
            MyServicePortType port = service.getPort(MyServicePortType.class);

            // 调用WebService方法
            String response = port.operationName("parameter");

            // 处理返回结果
            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
登入後複製
  1. 使用Apache CXF產生客戶端程式碼

Apache CXF是一個用於開發Web服務的框架,透過使用Apache CXF產生客戶端程式碼可以簡化呼叫WebService服務的過程。

首先,在Eclipse中建立一個Java項目,並匯入Apache CXF相關的jar套件。

接下來,在專案的根目錄下建立一個名為"cxfClient"的包,並在該套件下新建一個類,命名為"CxfClient"。

下面是一個使用Apache CXF呼叫WebService服務的範例程式碼:

package cxfClient;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class CxfClient {
    public static void main(String[] args) {
        try {
            // 创建JaxWsProxyFactoryBean对象
            JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();

            // 设置服务地址
            factory.setAddress("http://localhost:8080/MyService");

            // 设置服务接口
            factory.setServiceClass(MyServicePortType.class);

            // 创建接口代理对象
            MyServicePortType port = (MyServicePortType) factory.create();

            // 调用WebService方法
            String response = port.operationName("parameter");

            // 处理返回结果
            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
登入後複製
  1. 使用Spring Boot整合WebService服務

Spring Boot提供了對WebService服務的整合功能,透過使用Spring Boot整合WebService服務可以更方便地進行WebService的呼叫。

首先,在Spring Boot的專案中,新增對WebService的支持,並建立一個名為"MyService"的接口,定義WebService的操作方法。

@WebService
public interface MyService {
    @WebMethod
    String operationName(String parameter);
}
登入後複製

然後,在Spring Boot的專案中,建立一個名為"MyServiceImpl"的類,實作"MyService"接口,並實作介面中定義的操作方法。

@WebService(serviceName = "MyService")
public class MyServiceImpl implements MyService {
    @Override
    public String operationName(String parameter) {
        // 业务逻辑处理
        return "response";
    }
}
登入後複製

最後,在Spring Boot的專案中,進行相關配置,啟動Spring Boot應用程序,並進行WebService的呼叫。

@RestController
public class MyController {
    private final MyService myService;

    public MyController(MyService myService) {
        this.myService = myService;
    }

    @GetMapping("/invokeWebService")
    public String invokeWebService() {
        String response = myService.operationName("parameter");
        return response;
    }
}
登入後複製

總結:

本文介紹了Java呼叫WebService服務的幾種方法,並提供了具體的程式碼範例。使用這些方法可以方便地實作Java對WebService服務的呼叫。

以上是方法有哪些用於Java呼叫WebService服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java API 開發中使用 Imgscalr 進行圖片處理 Java API 開發中使用 Imgscalr 進行圖片處理 Jun 18, 2023 am 08:40 AM

Java API 開發中使用 Imgscalr 進行圖片處理

免費的api介面網站有哪些 免費的api介面網站有哪些 Jan 05, 2024 am 11:33 AM

免費的api介面網站有哪些

Java API 開發中實作圖片驗證碼的方法 Java API 開發中實作圖片驗證碼的方法 Jun 18, 2023 am 09:22 AM

Java API 開發中實作圖片驗證碼的方法

Java網路程式設計有哪些常見的協定? Java網路程式設計有哪些常見的協定? Apr 15, 2024 am 11:33 AM

Java網路程式設計有哪些常見的協定?

Java API 開發中使用 Jgroups 進行分散式通信 Java API 開發中使用 Jgroups 進行分散式通信 Jun 18, 2023 pm 11:04 PM

Java API 開發中使用 Jgroups 進行分散式通信

JAX-RS 與 Spring MVC:一場 RESTful 巨頭的較量 JAX-RS 與 Spring MVC:一場 RESTful 巨頭的較量 Feb 29, 2024 pm 05:16 PM

JAX-RS 與 Spring MVC:一場 RESTful 巨頭的較量

j2ee是什麼,包括哪些技術 j2ee是什麼,包括哪些技術 Apr 14, 2024 pm 09:06 PM

j2ee是什麼,包括哪些技術

Java API 開發中使用 GreenMail 進行郵件測試 Java API 開發中使用 GreenMail 進行郵件測試 Jun 18, 2023 pm 02:22 PM

Java API 開發中使用 GreenMail 進行郵件測試

See all articles