- 浏览: 237171 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
qwe2252099:
给力!简单易懂
两个java web服务间SoapMessage对象的传递 -
mimang2007110:
不是自带的,自己编辑过的
java代码模板 -
墨子宇:
貌似不是带有箭头的
CSS带箭头的导航菜单 -
墨子宇:
借鉴一下。不是自带的那个吧
java代码模板 -
墨子宇:
看名字应该是注释模板吧
myeclipse编码模板
客户端代码:
try { // 创建连接对象并呼叫AP SOAPConnection conn = SOAPConnectionFactory.newInstance().createConnection(); SOAPMessage resMsg = conn.call(reqMsg, apUrl); // 获取AP的响应消息 String msg = ""; if (null == resMsg) { msg = getResponse(servletContext, currOperaId, 0); } else { // 接收对方返回的SOAPMessage对象并转成字符串 Document doc = resMsg.getSOAPPart().getEnvelope().getOwnerDocument(); StringWriter output = new StringWriter(); TransformerFactory.newInstance() .newTransformer() .transform(new DOMSource(doc), new StreamResult(output)); msg = output.toString(); } // 移除servlet上下文中存储的消息 servletContext.removeAttribute(id); return msg; } catch (Exception ex) { logger.error(Global.LOG_EXCEPTION_NAME, ex); return ""; }
服务器端代码:
try { // 把请求流转换成字符串 int i = -1; InputStream is = request.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); while ((i = is.read()) != -1) { baos.write(i); } String content = baos.toString(); // 在响应流中写入SoapMessage对象 int num = (int)(Math.random() * 10) % 2; response.setContentType("text/xml; charset=utf-8"); response.setHeader("Connection", Global.KEEP_LIVE); response.setHeader("User-Agent", "gSOAP/2.7"); SOAPMessage soap = Global.formartSoapString(PressureTool.createUploadResponse(num)); OutputStream os = response.getOutputStream(); soap.writeTo(os); os.close(); } catch (Exception e) { logger.error("", e); }
注:Global.formartSoapString(PressureTool.createUploadResponse(num))代码如下:
/** * <创建UploadResponse事件的字符串> * <功能详细描述> * @param bool 1成功0失败 * @return * @see [类、类#方法、类#成员] */ public static String createUploadResponse(int bool) { StringBuffer sb = new StringBuffer(); sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.append("<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:cwmp=\"urn:dslforum-org:cwmp-1-1\">"); sb.append("<SOAP-ENV:Header><cwmp:ID>1484</cwmp:ID></SOAP-ENV:Header>"); sb.append("<SOAP-ENV:Body SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">"); if (1 == bool) { sb.append("<cwmp:UploadResponse><Status>0</Status><StartTime>"); sb.append(Global.getCurrentTime()); sb.append("</StartTime><CompleteTime>"); sb.append(Global.getCurrentTime()); sb.append("</CompleteTime>"); sb.append("</cwmp:UploadResponse>"); } else { sb.append("<SOAP-ENV:Fault><faultcode>Client</faultcode><faultstring>CWMP fault</faultstring>"); sb.append("<detail><cwmp:Fault><FaultCode>9011</FaultCode><FaultString>Upload failure</FaultString></cwmp:Fault>"); sb.append("</detail></SOAP-ENV:Fault>"); } sb.append("</SOAP-ENV:Body></SOAP-ENV:Envelope>"); return sb.toString(); }
/** * <把soap字符串格式化为SOAPMessage> * <功能详细描述> * @param soapString * @return * @see [类、类#方法、类#成员] */ public static SOAPMessage formartSoapString(String soapString) { MessageFactory msgFactory; try { msgFactory = MessageFactory.newInstance(); SOAPMessage reqMsg = msgFactory.createMessage(new MimeHeaders(), new ByteArrayInputStream(soapString.getBytes(Charset.forName("UTF-8")))); reqMsg.saveChanges(); return reqMsg; } catch (Exception e) { logger.error(EXCEPTION_NAME, e); return null; } }
发表评论
-
HttpClient各种使用方法
2014-08-27 15:25 1445最近项目中用到了模拟HTTP请求的部分,下面做了一个小整合 ... -
java中BCD编码
2014-08-09 11:20 3462Java中实现的BCD编码,供有兴趣的参考,欢迎批评指正 ... -
Android数据库操作的两种方式
2014-07-10 16:56 1003Android操作数据库分文两种方式,一种是自己写sql脚本 ... -
Apache Ftp Server与spring框架融合
2014-04-01 16:33 6643最近在写一个项目,需要用到FTP服务,就从网上搜了一下,发现 ... -
Apache Ftp Server使用说明
2014-04-01 15:45 675最近公司项目需要一个FTP服务器,就从网上搜了一下发现Apac ... -
编程从业 5 年后的 14 条经验
2013-04-20 14:57 8241. 当性能遇到问题时,如果能在应用层进行计算和处理,那就把 ... -
Spring自己的轻量级定时器的两种实现方式
2013-03-04 19:35 1200Spring自己本身的轻量级 ... -
Java获取当前路径
2013-03-04 12:17 8381、利用System.getProperty()函数获取当 ... -
java udp通信
2012-12-12 11:39 1198java服务器部分: public static vo ... -
java 实现ftp的文件上传和删除
2012-12-01 11:49 17434package com.tw.ftp; impor ... -
java操作FTP,实现文件上传下载删除操作
2012-12-01 11:07 16986上传文件到FTP服务器: ... -
java下载文件的四种方式
2012-11-30 15:30 996try { ... -
模拟HTTPClient发送消息到服务器
2012-07-16 14:36 1016// 存储服务器的响应消息 Stri ... -
字符串转换成SoapMessage对象
2012-07-14 15:40 4320下面的代码可以把字符串转换成SoapMessage对象 ... -
SoapMessage对象转换成字符串
2012-07-14 15:36 6401下面的代码可以把一个SoapMessage对象转换成字符串对象 ... -
手动修改和启动在spring配置文件中配置的定时器
2012-07-12 20:50 21231、创建业务处理类 public class Task ... -
手动利用spring提供的quartz创建定时器
2012-07-12 20:41 3017手动创建并启动定时器方法: /** * & ... -
spring定时器的创建和配置
2012-07-12 20:38 68621、创建业务处理类 public class Palp ... -
spring管理日志的例子
2012-05-07 15:32 811Spring 带给我们的另一个好处就是让我们可以“专心做 ... -
Quartz 在Spring中动态设置cronExpression
2012-05-07 15:10 1036什么是动态定时任务:是由客户制定生成的,服务端只知道该去 ...
相关推荐
标题中的“利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务”指的是使用Java开发Web服务,特别是基于SOAP(Simple Object Access Protocol)的消息传递协议。SOAP是一种用于交换结构化和类型化信息...
Web服务是一种基于互联网的软件组件,它使用标准的XML(可扩展标记语言)进行数据交换,通常采用SOAP(简单对象访问协议)作为消息传输协议,并通过WSDL(Web服务描述语言)来描述服务接口。Java Web服务通常使用JAX...
9. **Web Services**:理解SOAP和RESTful两种Web服务的原理,使用JAX-WS和JAX-RS创建和调用Web服务。 10. **Spring框架**:Spring是Java Web开发中的主流框架,提供了依赖注入、AOP(面向切面编程)、数据访问、...
8. **JMS(Java Message Service)**:消息传递接口,用于异步通信,可能包含发布/订阅和点对点的消息传递示例。 9. **Web服务**:如SOAP(Simple Object Access Protocol)和RESTful服务的创建和调用,可能是通过...
9. **Struts、JSF(JavaServer Faces)**:这两个是Java Web的MVC框架,分别提供了不同的方法来组织和控制Web应用的逻辑。 10. **Web服务**:包括SOAP(Simple Object Access Protocol)和REST(Representational ...
SOAP消息通常包含一个Header和一个Body,用于传递元数据和实际业务数据。DOM4J是一个强大的Java库,用于处理XML文档,包括读取、写入、修改和解析。本篇文章将深入探讨如何利用DOM4J解析SOAP消息中的元素,以便在...
通过以上步骤,你可以成功地创建和发布一个Java版的定制Web服务,无论是RPC还是Message风格,都能有效地传递自定义对象。这使得开发者能够轻松地实现跨平台、跨语言的数据交换,促进了系统的集成和扩展。
2. **SOAPPart和SOAPEnvelope**:`SOAPMessage`对象包含一个`SOAPPart`,它是整个SOAP消息的容器。`SOAPPart`又包含一个`SOAPEnvelope`,表示SOAP消息的XML结构。 3. **SOAPHeader和SOAPBody**:`SOAPEnvelope`对象...
总结来说,Java的WebService支持涵盖了从设计、开发到部署的全过程,涉及了CXF和Axis这样的Web服务框架,以及WSDL和SOAP这两个关键的通信规范。理解并掌握这些知识,对于构建和集成跨平台的分布式系统至关重要。
总结起来,AXIS2 RCP/literal样式中的两种MESSAGE定义方式对于开发和调试SOAP Web服务客户端至关重要。硬编码XML字符串适用于简单场景,而JOM更适合处理复杂的业务逻辑和数据结构。TCPMon作为一个实用的辅助工具,...
总的来说,SAAJ和JAXM为Java开发者提供了强大的工具,以便在Web服务环境中创建高效的SOAP客户端和服务,处理复杂的XML消息传递需求。理解这两个API的工作原理及其交互方式,是构建和维护高质量的SOAP应用程序的关键...
Java调用Web Service是开发过程中常见的一项任务,主要用于不同系统间的接口交互,实现服务的消费。本示例提供了一个完整的Java调用Web Service的源码Demo,名为`CallWebServiceClientDemo`,它可以帮助开发者理解并...
6. **Web服务**:Java EE支持SOAP和RESTful两种类型的Web服务。SOAP(Simple Object Access Protocol)基于XML,适合于需要强类型和契约的场景;REST(Representational State Transfer)则更加轻量级,基于HTTP协议...
6. **Web服务**:Java服务器高级编程还会涵盖SOAP(简单对象访问协议)和RESTful Web服务的实现。JAX-WS和JAX-RS分别是Java用于创建SOAP和RESTful服务的API。 7. **高性能和可伸缩性**:通过负载均衡、集群、缓存...
使用SOAP(Simple Object Access Protocol)或者REST(Representational State Transfer)等协议,Java应用程序可以创建Web服务,实现跨平台、跨语言的进程间通信。 在实际应用中,选择合适的IPC方式取决于具体...
10. **Web服务(Web Services)**:如SOAP(简单对象访问协议)和REST(Representational State Transfer)等,用于不同系统间的通信,实现服务的互操作性。 11. **Tomcat、Jetty等应用服务器**:这些服务器运行和...
3. **调用Web Service方法**:使用客户端对象调用服务的方法,传递必要的参数。例如: ```java Service service = new Service(); MyWebServicePortType port = service.getPort(MyWebServicePortType.class); ...
Web服务允许不同系统间的互操作性,通过SOAP(Simple Object Access Protocol)协议传输XML数据。 了解和掌握上述技术,开发者可以构建高效、可扩展的企业级应用。无论是进行简单的网页开发,还是复杂的分布式系统...