微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservice——AXIS开发

昨天写完程序并部署Service之后,一直都在抛出接口不匹配的异常,于是我就写了个简单的接口,只传入一个String类型的参数,结果运行正常。然后我又写了个只传入Integer类型参数的接口,果不出所料,又发生了接口不匹配的异常。接下来我就开始改Client端代码

params.addElement(new Parameter("eventStatus",Integer.class,new Integer(1),null));
params.addElement(new Parameter("eventStatus",int.class,1,Intege.class,null));
结果统统失败,弄的我都要抓狂了。

今天到了公司以后,跟组长说了这件事情,组长说让我换用AXIS试试看,我到ws.apache.org/axis上面看了看文档,在user guide里面给出的例子和我的代码差别很大,我就只好按着它的例子重新改代码

写完以后,配环境变量配的快要抓狂……部署的时候又是一头雾水……最后始终没有成功……最后回到宿舍才想到,AXIS和Apache SOAP Server不过都是服务器而已,不应该存在规范上的区别,也就是不应该会影响到客户端的程序,于是我就按照最开始的代码,把Service部署好,启动 Tomcat,从WSDL中找到对应的信息

 
  1. <wsdl:service name="ServiceService">  
  2.  <wsdl:port binding="impl:serviceSoapBinding" name="service">  
  3.   <wsdlsoap:address location="http://localhost:8080/axis/services/service" />  
  4.  </wsdl:port>  
  5. </wsdl:service>  


在xml配置文件中,把location赋值给URL,把name赋值给TargetobjectURI,运行Client,一切OK
不知道是不是因为机器的问题,在公司的思路远远不如在宿舍啊

不过今天至少让我很熟练的掌握了如何手工部署AXIS服务,创建一个wsdd文件,我把它命名为deploy.wsdd

 
  1. <deployment name="lijian" xmlns="http://xml.apache.org/axis/wsdd/"  
  2.     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  3.   <service name="service" provider="java:RPC">  
  4.     <parameter name="className" value="Service" />  
  5.     <parameter name="allowedMethods" value="setAlarmInfo" />  
  6.   </service>  
  7. </deployment>  


把这个文件放到Tomcat/webapps/axis/WEB-INF/目录下,把service的类放到WEB-INF/classes/目录下,把 axis.jar;jaxrpc.jar;commons-logging-1.0.4.jar;commons-discovery-0.2.jar;saaj.jar 放到classpath里面,启动Tomcat之后,到webapps/axis/WEB-INF目录下运行:

java org.apache.axis.client.AdminClient deploy.wsdd

之后可以访问 http://localhost:8080/axis/  来查看刚才部署的service对应的wsdl了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐