简单WebService的例子(Axis引擎,DII部署)

1.开发环境
   我使用axis做为Web Service引擎,它是Apache的一个开源web service引擎。它目前最为成熟的开源web service引擎之一。下面我主要介绍一下如何使用Axis搭建web service 服务的环境。
   ①安装tomcat5.0应用服务器(也可以装5.5,不过我一直在用5.0);
   ②解压下载( http://ws.apache.org/Axis)后的axis重命名为.rar包再解压就是axis-1_4目录,将axis-1_4\webapps中axis目录复制到tomcat目录下的webapps目录下;  
   ③将axis/WEB-INF/lib目录下类文件复制到tomcat目录下的common/lib目录下;
   ④重新启动tomcat,访问http://localhost:8080/axis/happyaxis.jsp,如果能访问,表示安装成功;
  注意,axis有几个可选的包,如email.jar....,你可以找来放到tomcat目录下的common/lib目录下,如果不使用相关的功能也可以不用。
  这样,开发环境就搭建好了。

2.部署服务端
      DII方式中,先写好服务的JAVA文件(假设名字为helloworld.java,不含有package),然后把它(注意是源文件)拷贝到webapps/axis目录中,后缀改成jws(此时文件名为:helloworld.jws),然后访问连接http://localhost:8080/Axis/helloworld.jws?wsdl,页面显示Axis自动生成的wsdl,这样一个Web Service就部署好了。

3.开发客户端
      创建web工程,编写客户端请求程序。核心代码如下:
       String endpoint  = "http://localhost:8800/axis/Hello.jws";  
      Service service = new Service();  
      Call call = null;  
      call = (Call) service.createCall();  
      call.setOperationName(new QName(endpoint, "checkUserRight"));  
      call.setTargetEndpointAddress(new java.net.URL(endpoint));  
      int ret =Integer.parseInt(("" + call.invoke( new Object[]  
                                {args[0],args[1]} )));


demo
1、服务端程序Hello.java
public class Hello {

public int checkUserRight(String userId, String password) {
        //假设进行数据库操作
        if (password != null && "fred".equals(userId)) {
            return 1;
        }
    return 0;
}
}
2、将源码拷贝到tomcat_home\webapps\axis\下面并重命名为Hello.jws ,访问http://localhost:8080/axis/Hello.jws?wsdl,页面显示自动生成的WSDL
3、编写客户端
创建web工程,引入tomcat_Lib下的jar.编写client.java
package s;
import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class Client {  
  public static void main(String[] args) {  
  try {  
  String endpoint = "http://localhost:8800/axis/Hello.jws";  
  Service service = new Service();  
  Call call = null;  
  call = (Call) service.createCall();  
  call.setOperationName(new QName(endpoint, "checkUserRight"));  
  call.setTargetEndpointAddress(new java.net.URL(endpoint));  
  int ret =Integer.parseInt(("" + call.invoke( new Object[]  
           {args[0],args[1]} )));   
  System.out.println("return quote is : " + ret);  
  }catch (Exception ex) {  
  ex.printStackTrace();  
  } 
}  
}
其中args[0],args[1]为控制台输入参数,可以在执行open run dailog时候
对Arguments添加参数用空格分开。

运行客户端即可执行了。客户端提出请求,服务端处理请求返回结果。

你可能感兴趣的:(apache,tomcat,Web,应用服务器,webservice)