import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.Dispatch;
import javax.xml.ws.soap.SOAPBinding;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/*
* * Client
*
* @author zhaoshuai
*
* @version 1.0
*/
public class Client {
private static final String NAMESPACE_URL = "http://impl.service.dwjk.fy.np.thunisoft.com";
public static void main(String args[]) {
String className = "CourtBaseInfo";
String method = "getAllPersons";
ArrayList<String> list = new ArrayList<String>();
// list.add("65552");
// list.add("65540");
// list.add("<caseInfo><case bh='2224' ajlb='1' baktxh='4' ft=''/></caseInfo>");
list.add("2");
// list.add("<?xml version='1.0' encoding='UTF-8'?><CaseSpzh type='bean.CaseSpzh'><ajlb>2</ajlb><fyid>10</fyid><lstSpzh></lstSpzh></CaseSpzh>");
// list.add("11");
invoke(className, method, list);
}
public static void invoke(String className, String method,
List<String> paramList) {
String endpointAddress = "http://172.16.26.117:8090/dwjk/services/"
+ className + "?wsdl";
QName SERVICE_NAME = new QName(NAMESPACE_URL, className);
QName PORT_NAME = new QName(NAMESPACE_URL, className + "Port");
// 设置SOAP信息
javax.xml.ws.Service service = javax.xml.ws.Service
.create(SERVICE_NAME);
service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING,
endpointAddress);
Dispatch<SOAPMessage> dispatch = service.createDispatch(PORT_NAME,
SOAPMessage.class, javax.xml.ws.Service.Mode.MESSAGE);
BindingProvider bp = (BindingProvider) dispatch;
Map<String, Object> rc = bp.getRequestContext();
rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
rc.put(BindingProvider.SOAPACTION_URI_PROPERTY, method);
// 调用webservice
SOAPBody soapBody = null;
try {
MessageFactory messageFactory = ((SOAPBinding) bp.getBinding())
.getMessageFactory();
SOAPMessage request = messageFactory.createMessage();
SOAPBody body = request.getSOAPBody();
QName payloadName = new QName(NAMESPACE_URL, method, "ns1");
SOAPBodyElement payload = body.addBodyElement(payloadName);
for (int i = 0; i < paramList.size(); i++) {
payload.addChildElement(new QName("arg" + i)).addTextNode(
paramList.get(i));
}
request.saveChanges();
SOAPMessage reply = null;
reply = dispatch.invoke(request);
soapBody = reply.getSOAPBody();
SOAPBodyElement nextSoapBodyElement = (SOAPBodyElement) soapBody
.getChildElements().next();
SOAPElement soapElement = (SOAPElement) nextSoapBodyElement
.getChildElements().next();
System.out.println(soapElement.getValue());
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
File file = new File("D://test//1.xml");
XMLWriter writer = new XMLWriter(new FileWriter(file), format);
writer.write(DocumentHelper.parseText(soapElement.getValue()));
writer.close();
} catch (Exception wse) {
wse.printStackTrace();
}
}
}
分享到:
相关推荐
在Eclipse中通过工具来监控webService请求和返回时的数据,Eclipse中手工发送请求包,调试WebService时特别有用。
1 目标:将WebService和客户端部署在不同的服务器,由客户端请求服务。 2 原理:Nginx将不同域的HTTP服务、网站放入统一的域中,规避跨域问题。 不同的服务器位置于不同的域。JavaScript安全性不允许POST的跨域...
axis2实现webservice请求,资源包中有需要jar及实现的具体demo
passbook的webservice请求的官方文档 该文档描述,passbook怎么通过webserviceurl请求服务器 和服务器交互更新,passbook,获取serinum等操作
NULL 博文链接:https://1193605999.iteye.com/blog/2210417
Android 基于 Retrofit2+Okhttp3 通过SOAP协议请求WebService
访问WebService处理拦截开始访问的消息
超简单的webservice调用demo,对hutool工具进行简单的封装,只需要输入webservice接口名、接口参数即可进行webservice接口调用,欢迎大家吐槽
c++调用webservice(包括静态和动态以及webservice源码)
在不能引用其他jar包的情况调用webservice有时可以解决jar引用和冲突的问题
在Android上使用HttpGet、HttpPost和WebService进行通信,对ksoap2的接口进行封装,包括参数的构建、服务端返回数据的xml的解析等。内附ksoap2的jar包和ksoap2的封装类,可直接使用。
希望用http协议的能可以帮到大家!很有使用价值!大家可以看看!
各种利用webservice技术代码样例,用axis框架。
最近项目中刚好用到这个请求,就写下来了,方便日后使用,请求没什么展示性的就不传图了
通过webservice提交xml数据以及soap协议的使用
axis调用第三方webservice接口所需的jar包,包括axis-1.4.jar,axis-jaxrpc-1.3.jar,axis-jaxrpc-1.4.jar,commons-discovery-0.5.jar,commons-logging-1.2.jar,cxf-rt-databinding-jaxb-3.3.1.jar,javax.mail-...
webservice测试调用工具,使开发者更加快捷的调用测试webservice接口,
java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用...
Myeclipse axis插件安装和webservice使用
java 调用 webService大多数情况下的通用工具类,具体使用见里面的说明