java调用webservice接口实现方式有哪些?

TheDisguiser 2020-09-14 22:42:08 java常见问答 7927

我们知道,接口是java的一个重要概念,一切的实现都基于接口,这次,小编要为大家讲解的就是如何在java中调用webservice,下面就一下来看看。

一、AXIS远程调用web service

import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;
public class caClient
{
    public static void main(String[] args)
    {
        try
        {
            String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
            // 直接引用远程的wsdl文件  
            // 以下都是套路  
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(endpoint);
            call.setOperationName("addUser"); // WSDL里面描述的接口名称  
            call.addParameter("userName"
                , org.apache.axis.encoding.XMLType.XSD_DATE
                , javax.xml.rpc.ParameterMode.IN); // 接口的参数  
            call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); // 设置返回类型  
            String temp = "测试人员";
            String result = (String) call.invoke(new Object[]
            {
                temp
            });
            // 给方法传递参数,并且调用方法  
            System.out.println("result is " + result);
        }
        catch (Exception e)
        {
            System.err.println(e.toString());
        }
    }
}

二、SOAP远程调用webservice

import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
import java.io.*;
import java.net.*;
import java.util.Vector;
public class caService
{
    public static String getService(String user)
    {
        URL url = null;
        try
        {
            url = new URL(
                "http://192.168.0.100:8080/ca3/services/caSynrochnized");
        }
        catch (MalformedURLException mue)
        {
            return mue.getMessage();
        }
        // This is the main SOAP object  
        Call soapCall = new Call();
        // Use SOAP encoding  
        soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
        // This is the remote object we're asking for the price  
        soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
        // This is the name of the method on the above object  
        soapCall.setMethodName("getUser");
        // We need to send the ISBN number as an input parameter to the method  
        Vector soapParams = new Vector();
        // name, type, value, encoding style  
        Parameter isbnParam = new Parameter("userName", String.class, user
            , null);
        soapParams.addElement(isbnParam);
        soapCall.setParams(soapParams);
        try
        {
            // Invoke the remote method on the object  
            Response soapResponse = soapCall.invoke(url, "");
            // Check to see if there is an error, return "N/A"  
            if (soapResponse.generatedFault())
            {
                Fault fault = soapResponse.getFault();
                String f = fault.getFaultString();
                return f;
            }
            else
            {
                // read result  
                Parameter soapResult = soapResponse.getReturnValue();
                // get a string from the result  
                return soapResult.getValue()
                    .toString();
            }
        }
        catch (SOAPException se)
        {
            return se.getMessage();
        }
    }
}

以上就是本篇文章的所有内容,更多java常见问题及解决方法敬请关注奇Q工具网了解详情。

推荐阅读:

在java中如何使用axis2调用webservice接口,具体操作展示

在java中怎么用xfire调用webservice接口,操作实例展示

在java中如何生成webservice的接口?详细图文解析