public void Test(){
final String endpointURL ="http://localhost:8080/test/interface.asmx"; //j接口地址
final String username="admin"; //验证用户名 SOAP验证用户名
final String 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();
}
}
java 调用.net webservice 带soap验证头消息方式
最新推荐文章于 2024-07-09 20:05:23 发布