java 调用.net webservice 带soap验证头消息方式

来源:互联网 发布:天猫和淘宝质量一样吗 编辑:程序博客网 时间:2024/05/16 00:54
public void Test(){final String endpointURL ="http://localhost:8080/test/interface.asmx";  //j接口地址final  String  username="admin";  //验证用户名 SOAP验证用户名finalString password="admin"; //验证密码soap验证密码try{Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(new java.net.URL(endpointURL));call.setSOAPActionURI("http://www.test.com.cn/Getname");// 调用的命名空间和方法名call.setOperationName(new QName("http://www.test.com.cn","Getname"));// 设置命名空间和操作的名称。SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("http://www.test.com.cn","RequestName");soapHeaderElement.setNamespaceURI("http://www.test.com.cn");//命名空间try{soapHeaderElement.addChildElement("username").setValue(username);soapHeaderElement.addChildElement("password").setValue(password);}catch (SOAPException e){e.printStackTrace();}call.addParameter("name",  org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); //要传入的参数字段名,类型call.addHeader(soapHeaderElement);call.setReturnType( XMLType.XSD_SCHEMA);// 返回的数据类型call.setUseSOAPAction(true);Object o="";String[] args = new String []{"zhangsan"}; //要传入的参数try {o = call.invoke("http://www.test.com.cn", "Getname", args);  //加上命名空间,和方法名 ,参数} catch (Exception e) {e.printStackTrace();}Schema schema = (Schema) o;              MessageElement[] messageElements = schema.get_any();  //解析返回XML            String xml="";            for (int i = 0; i < messageElements.length; i++) {             SAXReader reader = new org.dom4j.io.SAXReader();               Document doc = reader.read(new ByteArrayInputStream(messageElements[i].toString().getBytes()));                   xml=doc.asXML().toString();            }        Document dom = DocumentHelper.parseText(xml);        Element root =dom.getRootElement();        for(Iterator it=root.elementIterator();it.hasNext();){                        Element node = (Element) it.next();                String Subject=  node.element("test").getText();//获取解析XML字段的名字                    }          }catch (Exception e){e.printStackTrace();}}

0 0
原创粉丝点击