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:
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(); } } }
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(); } } }
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(); } } }
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); }
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"; } }
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; } }
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!