Rumah > Java > javaTutorial > teks badan

Apakah kaedah untuk memanggil perkhidmatan WebService di Java?

WBOY
Lepaskan: 2024-02-19 13:48:06
asal
383 orang telah melayarinya

Apakah kaedah untuk memanggil perkhidmatan WebService di Java?

Tajuk: Kaedah Java dan contoh kod untuk memanggil perkhidmatan WebService

Abstrak: Artikel ini memperkenalkan beberapa kaedah untuk Java memanggil perkhidmatan WebService dan menyediakan contoh kod khusus. Termasuk menggunakan axis2 untuk menjana kod pelanggan, menggunakan JAX-WS untuk menjana kod pelanggan, menggunakan Apache CXF untuk menjana kod pelanggan, dan menggunakan Spring Boot untuk menyepadukan perkhidmatan WebService. Melalui kaedah ini, Java boleh dilaksanakan dengan mudah untuk memanggil perkhidmatan WebService.

Teks:

  1. Gunakan axis2 untuk menjana kod pelanggan

Axis2 ialah rangka kerja WebService sumber terbuka Dengan menggunakan axis2 untuk menjana kod pelanggan, anda boleh memudahkan proses memanggil perkhidmatan WebService.

Mula-mula, buat projek Java dalam Eclipse dan import pakej balang berkaitan axis2.

Seterusnya, buat pakej bernama "axis2Client" dalam direktori akar projek dan buat kelas baharu di bawah pakej bernama "Axis2Client".

Berikut ialah contoh kod yang menggunakan axis2 untuk memanggil perkhidmatan 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();
        }
    }
}
Salin selepas log masuk
  1. Gunakan JAX-WS untuk menjana kod pelanggan

Java API untuk XML Web Services (JAX-WS) ialah alat untuk membangunkan Soap- perkhidmatan Web berasaskan Piawaian Java menjadikannya lebih mudah untuk memanggil perkhidmatan WebService dengan menggunakan JAX-WS untuk menjana kod pelanggan.

Mula-mula, buat projek Java dalam Eclipse dan import pakej balang berkaitan JAX-WS.

Seterusnya, buat pakej bernama "jaxwsClient" dalam direktori akar projek dan buat kelas baharu di bawah pakej bernama "JaxwsClient".

Berikut ialah contoh kod yang menggunakan JAX-WS untuk memanggil perkhidmatan 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();
        }
    }
}
Salin selepas log masuk
  1. Gunakan Apache CXF untuk menjana kod pelanggan

Apache CXF ialah rangka kerja untuk membangunkan perkhidmatan Web, dengan menggunakan Apache CXF untuk menjana pelanggan kod Ia boleh memudahkan proses memanggil perkhidmatan WebService.

Mula-mula, buat projek Java dalam Eclipse dan import pakej balang berkaitan Apache CXF.

Seterusnya, buat pakej bernama "cxfClient" dalam direktori akar projek dan buat kelas baharu di bawah pakej bernama "CxfClient".

Berikut ialah contoh kod yang menggunakan Apache CXF untuk memanggil perkhidmatan 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();
        }
    }
}
Salin selepas log masuk
  1. Gunakan Spring Boot untuk menyepadukan perkhidmatan WebService

Spring Boot menyediakan fungsi penyepaduan untuk perkhidmatan WebService menggunakan Spring Boot Buat panggilan WebService.

Pertama, dalam projek Spring Boot, tambah sokongan untuk WebService, buat antara muka bernama "MyService", dan tentukan kaedah operasi WebService.

@WebService
public interface MyService {
    @WebMethod
    String operationName(String parameter);
}
Salin selepas log masuk

Kemudian, dalam projek Spring Boot, cipta kelas bernama "MyServiceImpl", laksanakan antara muka "MyService" dan laksanakan kaedah operasi yang ditakrifkan dalam antara muka.

@WebService(serviceName = "MyService")
public class MyServiceImpl implements MyService {
    @Override
    public String operationName(String parameter) {
        // 业务逻辑处理
        return "response";
    }
}
Salin selepas log masuk

Akhir sekali, dalam projek Spring Boot, buat konfigurasi yang berkaitan, mulakan aplikasi Spring Boot, dan hubungi 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;
    }
}
Salin selepas log masuk

Ringkasan:

Artikel ini memperkenalkan beberapa kaedah untuk memanggil perkhidmatan WebService dalam Java dan menyediakan contoh kod khusus. Kaedah ini boleh digunakan untuk melaksanakan panggilan Java ke perkhidmatan WebService dengan mudah.

Atas ialah kandungan terperinci Apakah kaedah untuk memanggil perkhidmatan WebService di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!