Java调用WebService之Axis实现

Posted H.U.C-王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java调用WebService之Axis实现相关的知识,希望对你有一定的参考价值。

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

/** 
* @ClassName: TestAxis 
* @Description: TODO(描述这个类的作用) 
* @author Roy_70
* @date 2017年4月18日 上午9:16:26 
*  
*/ 

public class TestAxis {
    public static void main(String []args){
        String inConditions = "<?xml version="1.0" encoding="UTF-8" ?><ROWS><INFO><SBM>*</SBM></INFO><ROW><GMSFHM>公民身份号码</GMSFHM><XM>姓名</XM></ROW><ROW><GMSFHM>110101******</GMSFHM><XM>李闻</XM><FSD>100600</FSD><YWLX>个人贷款</YWLX></ROW><ROW><GMSFHM>3624221952123***</GMSFHM><XM>李一闻</XM><FSD>100600</FSD><YWLX>个人贷款</YWLX></ROW><ROW><GMSFHM>1234********</GMSFHM><XM>王龙</XM><FSD>100600</FSD><YWLX>银行开户</YWLX></ROW><ROW><GMSFHM>110101******</GMSFHM><XM></XM><FSD>100600</FSD><YWLX>个人车贷</YWLX></ROW><ROW><GMSFHM>110101******</GMSFHM><XM></XM><FSD>100600</FSD><YWLX></YWLX></ROW><ROW><GMSFHM>230602***</GMSFHM><XM></XM><FSD>100600</FSD><YWLX>个人车贷</YWLX></ROW></ROWS>";
        String inLicense = "********";  
         try{       
                //调用webservice地址      
                String url = "https://www.****.com/services/NciicServices"; 
                //调用方法名
                String method="nciicCheck";
                Service service = new Service();
                //通过service创建call对象     
                Call call = (Call) service.createCall();
                //设置服务地址
                call.setTargetEndpointAddress(new java.net.URL(url)); 
                //设置调用方法
                call.setOperationName(method);
                call.setUseSOAPAction(true);
                //添加方法的参数,有几个添加几个
                //inLicense是参数名,XSD_STRING是参数类型,IN代表传入
                call.addParameter("inLicense", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); 
                call.addParameter("inConditions", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
                //设置返回类型  
                call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
                Object ret= null;
                try{
                    //使用invoke调用方法,Object数据放传入的参数值
                    ret = call.invoke(new Object[] {inLicense,inConditions});  
                }catch(Exception e){
                    e.printStackTrace();
                }
                //输出SOAP请求报文
                System.out.println("--SOAP Request: " + call.getMessageContext().getRequestMessage().getSOAPPartAsString());
                //输出SOAP返回报文
                System.out.println("--SOAP Response: " + call.getResponseMessage().getSOAPPartAsString());
                //输出返回信息
                System.out.println("result==="+ret.toString()); 
        }catch(Exception e){
        e.printStackTrace();
        }
    }   
}

下面是输出结果信息:

--SOAP Request: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><nciicCheck soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><inLicense xsi:type="xsd:string">*****</inLicense><inConditions xsi:type="xsd:string">*****</inConditions></nciicCheck></soapenv:Body></soapenv:Envelope>
--SOAP Response: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:nciicCheckResponse xmlns:ns1="https://api.nciic.org.cn/NciicServices"><ns1:out>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;RESPONSE errorcode=&quot;-72&quot; code=&quot;0&quot; countrows=&quot;1&quot;&gt;&lt;ROWS&gt;&lt;ROW&gt;&lt;ErrorCode&gt;-72&lt;/ErrorCode&gt;&lt;ErrorMsg&gt;IP&#x5730;&#x5740;&#x53D7;&#x9650;&lt;/ErrorMsg&gt;&lt;/ROW&gt;&lt;/ROWS&gt;&lt;/RESPONSE&gt;</ns1:out></ns1:nciicCheckResponse></soap:Body></soap:Envelope>
result===<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE errorcode="-72" code="0" countrows="1"><ROWS><ROW><ErrorCode>-72</ErrorCode><ErrorMsg>IP地址受限</ErrorMsg></ROW></ROWS></RESPONSE>

 

以上是关于Java调用WebService之Axis实现的主要内容,如果未能解决你的问题,请参考以下文章

Axis2生成wsdl客户端代码并实现webservice调用

Java调用wsdl,怎么实现

java程序怎么调用webservice接口,实现发送短信功能

如何解决java axis 调用webservice服务器操作异常

现在java调用webservice是用啥技术?

java axis调用带有soap头(soapheader)的.net webservice