Webservice入门.doc_第1页
Webservice入门.doc_第2页
Webservice入门.doc_第3页
Webservice入门.doc_第4页
Webservice入门.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用Axis开发WebService 1.下载并安装Axis 1)登陆/axis/站点下载Axis 下载axis-bin-1_4.zip,解压后的目录结构如下: 2)安装Axis 首先要成功的安装Tomcat,然后将下载的Axis目录下面的webapps中的axis的 整个文件夹全部拷贝到Tomcat安装目录的Webapps下面 启动Tomcat,在浏览器中输入http:/localhost:8080/axis之后 显示的界面如下: Axis安装完毕。 2.开发WebService 1)即时发布的WebService 即时发布提供了一种非常简单的发布方式,发布者只要有Java源代码,然后把其后缀名改成jws,拷贝到%Tomcat_HOME%webappsaxis下即完成了发布工作。 a)服务端代码:文件名SayHelloServer.java Java代码 1. public class SayHelloServer 2.3. ublic String getName(String name) 4. return hello +name; 5.6. 把SayHelloServer.java文件改为SayHelloServer.jws然后拷贝到%Tomcat_HOME%webappsaxis目录下,启动Tomcat后访问http:/locahost:8080/axis/SayHelloServer.jws可以看到Click to see the WSDL的超链接 说明服务器端已经发布成功,下面开始编写Client端代码。 b)客户端代码: Java代码 1. package com.wl.webservice.test; 2.3. import space.QName; 4.5. import org.apache.axis.client.Call; 6. import org.apache.axis.client.Service; 7.8. public class SayHelloClient 9.10. /* 11. * param args 12. */ 13. public static void main(String args) 14. / TODO Auto-generated method stub 15.16. try 17. String endpoint=http:/localhost:8080/axis/TestClient.jws; 18. Service service=new Service(); 19. Call call=null; 20. call=(Call)service.createCall(); 21. call.setOperationName(new QName(endpoint,getName); 22. call.setTargetEndpointAddress(new .URL(endpoint); 23. String ret=(String)call.invoke(new Objectzhangsan); 24. System.out.println(return value is +ret); 25. catch (Exception e) 26. / TODO Auto-generated catch block 27. e.printStackTrace(); 28. 29. 30.31. 执行客户端的代码结果如下: 总结:即时发布很简单,但是有很多弊端,假如你现在只有.class或者一个jar包,jws就不再能满足你的需求了,最重要的是即时发布不支持带包的类。 2)定制发布的WebService 定制发布比即时发布更加繁琐和复杂,但是换来的是更大的灵活性。定制发布需要你自己编写一个WSDD(Web Service Deployment Descriptor)文件。 a)服务器端代码: Java代码 1. package com.wl.webservice.test; 2.3. public class HelloWorldWsdd 4.5. public String hello(String name) 6. return hello +name; 7. 8. 这是一个带包的很简单的类,编译好之后将class文件拷贝到%Tomcat_HOME%webappsaxisWEB-INFclasses目录下 b)接下来就是编写发布文件deploy.wsdd,在%TOMCAT_HOME%webappsaxisWEB-INF目录下建立这个文件并且在其中添加如下内容: Java代码 1. 2. 3. 4. 5. 6. 这个wsdd文件是一个标准的XML文件,包含三个元素: 元素制定了wsdd所用的XML命名空间,是这个文件的根。 元素制定了一项SOAP服务。它有两个属性。name指定了这个服务的唯一标志符,provider指定了实现的语言及服务方式。一个wsdd文件可能有多个元素。 指定了服务详细信息,是一组name/value对应的值。其中,clcssName指定了实现这个服务的类的名字,allowedMethods指定了这个服务暴露的方法列表。 其中的com.wl.webservice.test是包的名称。 打开cmd命令窗口,进入%Tomcat_HOME%webappsaxisWEB-INF目录下面输入如下命令: java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http:/localhost:8080/axis/services/AdminService deploy.wsdd 或者 java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd 执行结果如下: 控制台返回Processing file deploy.wsdd 和Done processing 说明发布成功。 并且会在同一级别目录下生成一个service-config.wsdd文件。 发布成功之后,可以通过访问http:/localhost:8080/axis/servlet/AxisServlet来查看所有的定制发布的服务。 但是我在通过http:/localhost:8080/axis/servlet/AxisServlet查看的时候,页面报一些错误: 出错的原因是:我创建的这个HelloWorldWsdd服务是有包名称com.wl.webservice.test 解决方法:在%Tomcat_HOME%webappsaxisWEB-INFclasses下面创建目录com,在com下创建目录wl,在wl下创建目录webservice,在webervice下创建目录test,最后把HelloWorldWsdd.class文件再 拷贝到test目录下面。 重新http:/localhost:8080/axis/servlet/AxisServlet查看结果: 备注:发布deploy.wsdd可能会出现的问题: I)axis所需要的Jar包如下: 在部署deploy.wsdd的时候会报一个Unable to find required classes的信息,具体: 但是影响不大,要是去掉这个警告信息的话,还需要一个Jar包mail.jar,从相关网站下载后拷贝到%Tomcat_HOME%webappsaxisWEB-INFlib下面,再次重新部署deploy.wsdd就不会再报上面的警告信息了。 参考:/foamflower/archive/2008/09/08/2897501.aspx II)在部署deploy.wsdd的时候Tomcat服务器需要开启,否则会报异常信息: c)客户端代码如下: Java代码 1. package com.wl.webservice.test; 2.3. import space.QName; 4.5. import org.apache.axis.client.Call; 6. import org.apache.axis.client.Service; 7.8. public class HelloWorldWsddClient 9.10. public static void main(Stringargs) 11.12. try 13. String uri=http:/localhost:8080/axis/services/HelloWorldWsdd; 14. Service service=new Service(); 15. Call call=(Call)service.createCall(); 16. call.setTargetEndpointAddress(uri); 17. call.setOperationName(new QName(uri,hello); 18. String result=(String)call.invoke(new Objectwanglei and zhangsan); 19. System.out.println(result=+result); 20. catch (Exception e) 21. / TODO Auto-generated catch block 22. e.printStackTrace(); 23. 24. 25. 执行客户端代码结果如下: 3.取消发布一个WebService 取消一个已经发布的Web

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论