Home > Java > javaTutorial > In-depth analysis of the method of calling WebService in Java

In-depth analysis of the method of calling WebService in Java

王林
Release: 2023-12-29 09:20:59
Original
1185 people have browsed it

In-depth analysis of the method of calling WebService in Java

Detailed explanation of the method of calling WebService in Java

Overview:
With the development of the Internet, Web services have become an indispensable part. Web service is a distributed computing model based on the HTTP protocol. It provides a standardized interface through the network so that applications on different platforms can communicate with each other and exchange data. As a widely used programming language, Java provides a wealth of libraries and tools to facilitate developers to call WebService.

This article will introduce in detail the method of calling WebService in Java and give code examples to help developers better understand and apply it.

1. The basic concept of WebService
WebService is a software system that can be accessed through the network. It uses standardized XML format for data transmission, and generally uses the SOAP protocol (Simple Object Access Protocol) as communication protocol. WebService usually has the following characteristics:

  1. Based on XML - WebService uses XML as the format for data exchange, allowing applications on different platforms to interact.
  2. Loose coupling - WebService uses standard protocols and data formats to communicate, allowing applications on different platforms to evolve and upgrade relatively independently.
  3. Interoperability - WebService supports communication between different platforms and programming languages, allowing applications to run and communicate across platforms.

2. Method of calling WebService in Java
In Java, we can use Java's own WebService related libraries and tools to call WebService. The following methods are commonly used:

  1. JAX-WS (Java API for XML Web Services) method
    JAX-WS is part of Java EE, which provides a set of standard APIs. Used to develop and deploy WebService. The following is a simple sample code:
import javax.jws.WebService;

@WebService
public class HelloWorld {
    public String sayHello(String name) {
        return "Hello, " + name + "!";
    }
}
Copy after login

In this example, we define a simple WebService that provides a method named sayHello to return a greeting. Using JAX-WS, we can call this WebService through the following code:

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

public class HelloWorldClient {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://localhost:8080/HelloWorld?wsdl");
            QName qname = new QName("http://webservice.example.com/", "HelloWorldService");
            Service service = Service.create(url, qname);
            HelloWorld hello = service.getPort(HelloWorld.class);
            System.out.println(hello.sayHello("John"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Copy after login

In this client code, we first create a URL object that points to the WSDL address of the WebService we want to call. Then, we created a Service object using the URL, and obtained the WebService interface we want to call through the Service object. Finally, we called the sayHello method of the WebService interface and printed the returned result.

  1. Apache Axis2 (Apache eXtensible Interaction System) method
    Axis2 is an open source Web service framework developed by the Apache Foundation. The following is a simple sample code:
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.rpc.client.RPCServiceClient;
import org.apache.axis2.wsdl.WSDLConstants;

public class HelloWorldClient {
    public static void main(String[] args) {
        try {
            RPCServiceClient rpcServiceClient = new RPCServiceClient();
            Options options = rpcServiceClient.getOptions();
            options.setProperty(Constants.Configuration.DISABLE_SOAP_ACTION, true);
            options.setProperty(WSDLConstants.WSDL_LOCATION, "http://localhost:8080/HelloWorld?wsdl");
            options.setTimeOutInMilliSeconds(10000);

            QName qname = new QName("http://webservice.example.com/", "HelloWorldService");
            String method = "sayHello";
            Object[] parameters = new Object[] { "John" };

            Class<?>[] returnTypes = new Class[] { String.class };
            Object[] response = rpcServiceClient.invokeBlocking(qname, method, parameters, returnTypes);
            String result = (String) response[0];
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Copy after login

In this client code, we first create an RPCServiceClient object. Then, we set the WSDL address and timeout of the WebService. Next, we define the method name (sayHello) and parameters (John) to be called, and call the method through the RPCServiceClient object. Finally, we print the returned results.

The above are two common methods for calling WebService in Java. Developers can choose the appropriate method to call WebService based on specific needs and usage scenarios.

Conclusion:
This article introduces the method of calling WebService in Java and provides relevant code examples. Through learning and practice, developers can better understand and apply WebService and improve development efficiency and code quality.

The above is the detailed content of In-depth analysis of the method of calling WebService in Java. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template