码迷,mamicode.com
首页 > 编程语言 > 详细

利用axis2调用带用户名和密码的webservice接口实例(java)

时间:2015-01-30 22:51:46      阅读:589      评论:0      收藏:0      [点我收藏+]

标签:axis2   带用户名和密码的webservice接口   

          因工作需要,需要调用合作公司的一些接口方法。调了一下午才调通,记下来,以作备忘,不废话,直接代码。        

 

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class OrderProcessClient {
        
        public static int getRes(String user,String pwd,String orderNo,String xmlStr){
                try {
                    
                    //xml地址(wsdl结尾)
                    String endpoint = "http://wcf.v-grow.com/eTrade/OrderProcess.svc?wsdl";
                   
                    Service service = new Service();
                    Call call = (Call) service.createCall();
                    //用户名密码验证
                    call.setUsername(user);
                    call.setPassword(pwd);
                    //call.getMessageContext().setUsername(user);
                    //call.getMessageContext().setPassword(pwd);    
                    
                    call.setTargetEndpointAddress(endpoint);
                    //a:首行targetNamespace值  b:调用方法名
                    call.setOperationName(new QName("http://tempuri.org/","Accept")); 
                    call.setUseSOAPAction(true); 
                    //所调用方法里面的wsdl:input wsaw:Action值
                    call.setSOAPActionURI("http://tempuri.org/IOrderProcess/Accept"); 
                    
                    //a:首行targetNamespace值  b:参数名,必须与.net设置的参数名相同
                    call.addParameter(new QName("http://tempuri.org/", "msgId"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.OUT);//接口的参数
                    call.addParameter(new QName("http://tempuri.org/", "orderNo"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);//接口的参数
                    call.addParameter(new QName("http://tempuri.org/", "xmlStr"), org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);//接口的参数
                    
                  //设置返回类型  
                    call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INT);
    
                    //给方法传递参数,并且调用方法
                    int i = (Integer)call.invoke(new Object[]{orderNo,xmlStr});
                    return i;
             }
             catch (Exception e) {
                    e.printStackTrace();
             }
             return 2;
        }
    
        public static void main(String[] args) {
              String user = "username";
              String pwd  = "password";
              String orderNo = "123";
              StringBuilder xmlString = new StringBuilder(); 
              xmlString.append("<Order orderid='123456'/>");
              System.out.println(getRes(user,pwd,orderNo,xmlString.toString()));
        }
}

           jar包下载地址:http://download.csdn.net/detail/xlb744868186/8410873

利用axis2调用带用户名和密码的webservice接口实例(java)

标签:axis2   带用户名和密码的webservice接口   

原文地址:http://blog.csdn.net/xlb744868186/article/details/43309251

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!