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集成开发环境中,使用特定的工具来观察和分析Web服务(webService)的请求和响应过程。这些工具可以帮助开发者更好地理解和调试Web...
【跨域WebService请求】在现代Web开发中,由于浏览器的安全策略限制,JavaScript通常不能发起对不同源的HTTP请求,这被称为跨域问题。对于GET请求,可以通过JSONP(JSON with Padding)来解决,但POST请求则更为复杂...
在 Axis2 中实现 WebService 请求涉及以下步骤: 1. **环境设置**:首先,你需要在你的项目中引入 Axis2 相关的 jar 包。这些 jar 包通常包括 Axis2 的核心库、XML 解析器、依赖的 Servlet API 等。在提供的资源包...
而Passbook的webservice请求则是指应用程序或服务通过网络与Passbook服务器进行通信的一种机制,用于更新电子票据、获取电子票据的序列号等操作。官方文档中详细描述了如何通过REST风格的webservice协议与服务器进行...
标题“WebService安全认证请求头信息”直指问题的核心,即在调用WebService时,如何通过请求头来传递必要的安全凭证,以验证客户端的身份。这通常涉及到身份验证、授权以及加密等安全机制。 首先,让我们了解...
这个压缩包“ios-使用iOS原生NSURLSession简单封装WebService请求.zip”显然包含了一个简单的网络请求封装,利用了苹果的原生网络库NSURLSession。NSURLSession是iOS 7及更高版本中推荐使用的网络编程接口,它提供了...
在这个“ios webservice请求”的示例中,我们将深入探讨如何在iOS应用中实现对Web Service的调用。 首先,我们要了解iOS中的网络请求基础。iOS提供了多种API来进行网络请求,如NSURLConnection、NSURLSession以及第...
总结,Android应用基于Retrofit2+Okhttp3通过SOAP协议请求WebService是一种有效的解决方案,它简化了网络调用的复杂性,同时利用了OkHttp3的高性能特性。通过定义接口、配置Retrofit实例、创建SOAP请求和处理响应,...
在IT行业中,Web服务(WebService)是一种通过网络进行通信的标准接口,它允许不同的应用程序之间交换数据和协同工作。本文将详细探讨"访问WebService处理拦截开始访问的消息"这一主题,包括Web服务的工作原理、消息...
然而,由于其自身不直接支持Web服务(WebService)的调用,开发者通常需要借助第三方库或者特定的技术来实现。本篇文章将详细讲解如何在C++中调用WebService,包括静态和动态方式,并探讨相关的源码实现。 首先,让...
### 使用HttpClient调用WebService接口详解 #### 一、概述 在现代软件开发中,Web服务(尤其是WebService)作为实现系统间交互的一种重要手段被广泛采用。WebService提供了通过HTTP协议进行远程过程调用的能力,...
3. **构造SOAP消息**:根据WebService的WSDL(Web Service Description Language)文档,创建符合规范的SOAP请求XML。WSDL描述了服务的接口、操作、消息结构等信息,可以通过它获取方法签名和命名空间。 4. **发送...
在调用WebService时,POST方法可以承载请求参数,将其封装在请求体中发送到服务端。 1. **构建HTTP请求** 在Java中,可以使用`java.net.URL`、`java.net.HttpURLConnection`或第三方库如Apache HttpClient来构建...
然后,学习Hutool库的使用,特别是其`cn.hutool.soap`模块,这个模块提供了创建和发送SOAP请求的方法。接着,根据`README.md`的指示,理解并运行项目,查看如何通过封装好的接口调用Web Service。这可能涉及到解析...
### WebService添加Basic验证详解 在现代Web应用中,安全性和数据保护至关重要。为了确保对外提供的WebService接口不被未授权的第三方访问,一种常见的做法就是在这些接口上实施身份验证机制。其中,Basic验证是一...
Nginx下实现对cxf WebService的负载均衡。
本文将深入探讨如何优化这个过程,提升WebService的访问速度。 首先,我们要理解为什么Web Service首次访问慢。当客户端首次调用一个WebService时,由于.NET框架的Just-In-Time (JIT)编译机制,服务的代码会被转化...
在Android上使用HttpGet、HttpPost和WebService进行通信,对ksoap2的接口进行封装,包括参数的构建、服务端返回数据的xml的解析等。内附ksoap2的jar包和ksoap2的封装类,可直接使用。
Web服务(WebService)是一种基于互联网的标准,用于应用程序之间的交互,它允许不同的系统之间共享数据和服务。在本主题中,我们将深入探讨如何通过Web服务提交XML数据以及SOAP(Simple Object Access Protocol)...
本文根据java代理实现CXF拦截器异常时只能进入fault拦截器而不能继续向下执行的问题。 利用java代理让RMI具有拦截器的功能。