用过的baidu空间,太难用了,还是cnblogs好用
GZ.Jackey
学无止境,博采众长。

近期由于参与项目涉及到使用JAVA进行WebService进行开发,所以特地在网上查找资料研究了一下,在java中一般是使用Axis框架来进行webservice开发的,Axis比较强大,能自动帮我们生成网络通信的代码,为开发节约了不少时间,在这里特此记录一下,备忘。

 

一、Axis环境的安装

1、主要软件环境

安装环境 J2SE SDK 1.4.2(或更高版本),Tomcat 5.0(或更高版本),eclipse 3.2(或其他IDE)。

2、下载并配置Axis

到  http://www.ip97.com/apache.org/ws/axis/1_4/axis-bin-1_4.zip网站下载Axis安装包。

下载完成解压后,将 webapps/axis 这个目录复制 %tomcathome%/webapps/ 下然后启动tomcat, 打开URL: http://localhost:8080/axis/  ; 

配置成功后将有如下信息,打开 validataion 然后,页面上的信息会告诉你已经有的包和还要差的包,然后根据提示将必须的包下载全.复制到 %tomcathome%/webapps/axis/WEB-INF/lib/目录; 重起tomat ,直到必须的包都装齐.

Jar包列表如下:

xmlsec.jar;wsdl4j-1.5.1.jar;saaj.jar;mail.jar;log4j-1.2.8.jar;jaxrpc.jar;commons-logging-1.0.4.jar;commons-discovery-0.2.jar;axis-ant.jar;axis.jar;activation.jar

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文件内容如下(该文件放在工程目录下的WEB-INF目录下):

<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 "/>

  <parameter name="allowedMethods" value="*"/>
 </service>
</deployment>

3、发布服务

编辑一个deploy.bat,Axis_Lib为axis.jar路径。内容如下:

set Axis_Lib=."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 就会显示服务列表。

若这个时候报找不到servlet/AxisServlet(404 not found),则是web.xml没有设置好AxisServlet (可以参考axis里目录下的web-inf里面的web.xml的设置【查找AxisServlet查看】)。

4、生成客户端client stub文件

  在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。

  编写一个WSDL2Java.bat文件,其内容如下:

      set Axis_Lib=."lib

      set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%

      set Output_Path=E:"soft"Eclipse"eclipse"workspace"WebServiceTest"src"

      set Package= client.SayHello

       %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:8080/test/services/SayHello?wsdl

       执行这个批处理文件就可以生成client stub.生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java 


5、编写客户端程序,编译并执行

client.SayHello包下编写TestClient.java文件,代码如下:

 

package client.SayHello;

 

public class TestClient {  

 

    public static void main(String[] args) throws Exception {  

       SayHelloService service = new SayHelloServiceLocator();

        SayHello_PortType client = service.getSayHello() ;

        String retValue = client.getName("gz!");

        System.out.println(retValue);

    }  

}  

 

  至此,整个服务器端和客户端的Web Service框架代码就完成了,剩下的就是在里面加入你的业务代码了,怎么样,Web Service并不难开发吧。

近期,有个项目需要用到WebService,所以对java中如何使用AXIS来进行WebService进行开发做了下尝试,特总结如下:

 

 

posted on 2009-03-20 17:45  GZ.Jackey  阅读(1209)  评论(0编辑  收藏  举报