非常感谢孙浩老师。
soap消息的分析
IMyService.java
package cn.lichen.webservice; import javax.jws.WebService; @WebService public interface IMyService { public int add(int a,int b); public int minus(int a,int b); }
修改过后:IMyService.java
package cn.lichen.webservice; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; @WebService public interface IMyService { @WebResult(name="addResult") public int add(@WebParam(name="a")int a,@WebParam(name="b")int b); public int minus(int a,int b); }
消息的创建
package cn.lichen.soap; import java.io.IOException; import javax.xml.namespace.QName; import javax.xml.soap.MessageFactory; import javax.xml.soap.soAPBody; import javax.xml.soap.soAPBodyElement; import javax.xml.soap.soAPEnvelope; import javax.xml.soap.soAPException; import javax.xml.soap.soAPMessage; import javax.xml.soap.soAPPart; import org.junit.Test; public class TestSoap { @Test public void test01(){ try { //1.创建消息工厂 MessageFactory factory = MessageFactory.newInstance(); //2.根据消息工厂创建SOAPmessage SOAPMessage message = factory.createMessage(); //3.创建SOAPPart SOAPPart part = message.getSOAPPart(); //4.创建SOAPenvelope SOAPEnvelope envelope = part.getEnvelope(); //5.创建SOAPBoby SOAPBody body = envelope.getBody(); //6.创建Qname,Qname就是带有命名空间的节点 表示<xsd:add QName name = new QName("http://www.lichen.cn/webservice","add","xsd"); //7.添加body节点元素 SOAPBodyElement bodyElement = body.addBodyElement(name); //8.添加节点内容 bodyElement.addChildElement("a").setValue("123"); bodyElement.addChildElement("b").setValue("456"); //9.打印输出 message.writeto(System.out); } catch (SOAPException e) { e.printstacktrace(); } catch (IOException e) { e.printstacktrace(); } } }
置于xml文档中:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header /> <SOAP-ENV:Body> <xsd:add xmlns:xsd="http://www.lichen.cn/webservice"> <a>123</a> <b>456</b> </xsd:add> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。