java web service

说道Web Service的程序开发,八个月前我加班调试公司和中国电信的商务领航系统的接口的时候,用的就是Web Service,Web Service有很多优点,使用Web Service可以在不同编程语言间实现数据交换,而我那时对Web Service也不熟,就由同事帮我生成了一大堆Web Service的框架代码,我则只单独开发业务代码。
  这次的另外一个项目也要用Web Service了,不过人手也少了,没有人帮做Web Service了,只好自己动手。
  好在开发前,有个同事先给我们不熟悉Web Service的程序员进行了一些培训,我才知道原来以前的Web Service都是可以自动生成代码的,而且也不难,试了一个下午客户端和服务器端的Web Service代码就都调试通过了,真不错。
  为了更多喜爱开发的程序员也能迅速了解Web Service的开发,考试.大这里整理了一些通过Axis开发Web Service的一些要点,考试.大希望能让不熟悉Web Service的开发人员能够迅速掌握Web Service。
  一、Axis环境的安装
  1、安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。
  2、到 http://xml.apache.org 网站下载Axis安装包。
  3、将Axis相关包文件放在WEB-INF\lib目录下。
  4、Axis可选的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。
  Axis支持三种web service的部署和开发,分别为:
  1、Dynamic Invocation Interface (DII)
  2、Dynamic Proxy方式
  3、Stubs方式
  前两种方式我就不介绍了,同事告诉我他们自己都不使用前两种方式,他们建议我们使用Stubs方式,因此我就主要就介绍一下第三种方式。注意,我自己的 Java源代码是放在D:\workspace\test\目录下,Axis相关包文件放在D:\workspace\test\WEB-INF目录下。
  二、编写wsdd发布web服务,编写stub client访问web服务
  1、编写服务端程序server,SayHello.java,编译server.SayHello.java
  package server;
  public class SayHello
  {
  public String getName(String name)
  {
  return "hello "+name;
  }
  }
  2、编写wsdd文件
  deploy.wsdd文件内容如下:
  <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <service name="SayHello" provider="java:RPC">
  <parameter name="className" value="server.SayHello.getName"/>
  <parameter name="allowedMethods" value="*"/>
  </service>
  </deployment>
  3、发布服务:
  编辑一个deploy.bat,Axis_Lib为axis.jar路径。内容如下:
  set Axis_Lib=D:\workspace\test\WEB-INF\lib
  set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
  set Axis_Servlet=http://localhost:8080/test/servlet/AxisServlet
  %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
  执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8080/test/services 就会显示服务列表。
  4、生成客户端client stub文件
  在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。
  编写一个WSDL2Java.bat文件,其内容如下:
  set Axis_Lib=D:\workspace\test\WEB-INF\lib
  set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
  set Output_Path=D:\workspace\test\src
  set Package=server.SayHello
  %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% SayHello.wsdl
  执行这个批处理文件就可以生成client stub.
  生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java .
  5、编写客户端程序,编译并执行
  下面是一段junit测试客户端代码。
  import java.net.URL;
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  public class TestWSClient extends TestCase {
  public TestWSClient(String string) {
  super(string);
  }
  public void SayHelloClient() throws Exception {
  SayHelloService service = new SayHelloServiceLocator();
  SayHello_PortType client = service.getSayHello() ;
  String retValue = client.getName("clientname");
  System.out.println(retValue);
  }
  public static Test suite() {
  TestSuite suite = new TestSuite();
  suite.addTest(new TestWSClient("SayHelloClient"));
  return suite;
  }
  }
  至此,整个服务器端和客户端的Web Service框架代码就完成了,剩下的就是在里面加入你的业务代码了,怎么样,Web Service并不难开发吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值