加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice——SOAP简单开发

发布时间:2020-12-17 02:55:09 所属栏目:安全 来源:网络整理
导读:首先下载soap,把soap.war放到tomcat/webapp/目录下,在classpath下面加入soap.jar、mail.jar和 activation.jar,然后创建一个Service和Client,把Service.class放到 tomcat/webapp/soap/WEB-INF/classes目录下,然后把mail.jar和activation.jar放到 tomcat/
首先下载soap,把soap.war放到tomcat/webapp/目录下,在classpath下面加入soap.jar、mail.jar和 activation.jar,然后创建一个Service和Client,把Service.class放到 tomcat/webapp/soap/WEB-INF/classes目录下,然后把mail.jar和activation.jar放到 tomcat/webapp/soap/WEB-INF/lib下面,并写一个配置文件用于部署服务。

?
  1. <isd:service??
  2. ???xmlns:isd="http://xml.apache.org/xml-soap/deployment"??
  3. ???id="urn:service"?checkMustUnderstands="true">??
  4. ??????<isd:provider?type="java"?scope="Request"?methods="setAlarm">??
  5. ??????<isd:java?class="work.Service"?static="false"/>??
  6. ???</isd:provider>??
  7. </isd:service>??


上面的work.Service是类的全名,setAlarm是提供的服务名,urn:service是URI。再写一个脚本来调用配置文件部署服务

java org.apache.soap.server.ServiceManagerClient
http://localhost:8080/soap/servlet/rpcrouter deploy deploy.xml

启动Tomcat之后,启动脚本,然后执行Client代码就可以了,Client的主体代码很简单,代码里面就不加入注释了。
??
?
  1. Call?call?=?new?Call?();??
  2. ????call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);??
  3. ????call.setTargetObjectURI?("urn:service");??
  4. ????call.setMethodName?("setAlarm");??
  5. ????Parameter?param?=?new?Parameter("alarm",?String.class,?alarm,
  6. ??????????????? Constants.NS_URI_SOAP_ENC);??
  7. ????Vector?paramList?=?new?Vector();??
  8. ????paramList.addElement(param);??
  9. ????call.setParams?(paramList);??
  10. ????URL?url?=?new?URL?("http://localhost:8080/soap/servlet/rpcrouter");??
  11. ????Response?resp?=?call.invoke?(url,?"");??
  12. ????if?(!resp.generatedFault())?{??
  13. ??????//?Extract?Return?value??
  14. ??????Parameter?result?=?resp.getReturnValue?();??
  15. ??????String?greeting?=?(String)?result.getValue();??
  16. ??????return?greeting;??
  17. ????}??
  18. ????else?{??
  19. ??????//??Extract?Fault?Code?and?String??
  20. ??????Fault?f?=?resp.getFault();??
  21. ??????String?faultCode?=?f.getFaultCode();??
  22. ??????String?faultString?=?f.getFaultString();??
  23. ??????System.err.println("Fault?Occurred?(details?follow):");??
  24. ??????System.err.println("Fault?Code:??"+faultCode);??
  25. ??????System.err.println("Fault?String:??"+faultString);??
  26. ??????return?new?String?("Fault?Occurred.??No?greeting?for?you!");??
  27. ????}??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读