webservice入门实例

Java Axis WebServices 简单例子 入门例子
过程:
1:下载Axis
2:编写一个具有计算功能的jws,发布,通过配置的方式发布,那种自动发布的不赞同。
3:根据发布后的wsdl生成客户端存根程序。
4:运行客户端代码,看访问结果是否正确。

一:下载Axis
www.apahce.org找到web services 的link进入后第一个条目就是Axis1.×,这个就是我们使用的版本。
下载到本地,解压,如果想看看他的source,也可以下载。
二:发布一个JWS。
这里通过配置的方式发布。
package org.tornado.webservices;
public class Calculator {
public int add(int a,int b){
   System.out.println("add["+a+","+b+"]");
   return a+b;
}
public int sub(int a,int b){
   System.out.println("sub["+a+","+b+"]");
   return a-b;
}
}

编写完成了,现在我们需要建立webapp。
将axis解压后的webapps/axis拷贝到tomcat的webapps下.
将webapps\axis\WEB-INF下的web.xml拷贝到webapps\webserviceServer\WEB-INF下

编写server-config.wsdd
<?xml version="1.0" encoding="UTF-8"?>   
<deployment name="defaultClientConfig"   
xmlns:java=" http://xml.apache.org/axis/wsdd/providers/java"   
xmlns:handler=" http://xml.apache.org/axis/wsdd/providers/handler" xmlns=" http://xml.apache.org/axis/wsdd/">   
<globalConfiguration name="defaultClientConfig">   
    <requestFlow name="RequestFlow1" type="">   
        <handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler">   
          <parameter name="scope" value="session"/>   
        </handler>   
        <handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler">   
            <parameter name="scope" value="request"/>   
            <parameter name="extension" value=".jwr"/>   
        </handler>   
      </requestFlow>   
    </globalConfiguration>   
    <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>   
    <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>   
    <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>   
    <transport name="http" type="">   
        <requestFlow name="RequestFlow1" type="">   
        <handler name="Handler1" type="URLMapper"/>   
        <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>   
      </requestFlow>   
    </transport>   
    <transport name="local" type="">   
        <responseFlow name="ResponseFlow1" type="">   
            <handler name="Handler1" type="LocalResponder"/>   
        </responseFlow>   
    </transport>  
<!--service name.add service just as this-->
<service name="Calculator" provider="java:RPC">   
    <parameter name="scope" value="Request"/>   
    <parameter name="className" value="org.tornado.webservices.Calculator"/>   
    <parameter name="allowedMethods" value="*"/>   
< service>   

</deployment> 
这个文件出来大家肯定挺晕,干嘛用的啊,实际上这就是一个你的Services的配置文件。
将这个配置文件放到WEB-INF/下
现在我们查看一下我们这个Service是否发布成功了。
 http://localhost:8080/webserviceServer/services
如果看到如下内容
Calculator (wsdl)
add
sub

证明我们已经发布成功了
点击wsdl就可以下载对应的wsdl文件了,客户端通过这个生成客户端文件。
三:生成客户端存根程序
首先建个wsdl2java.bat文件
      set Axis_Lib=D:\Tomcat6.0\webapps\webserviceServer\WEB-INF\lib
  set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
  set Output_Path=.\src
  set Package=server.com
  set wsdl_path=http://localhost:8080/webserviceServer/services/Calculator?wsdl
  %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% %wsdl_path%

这里有几个路径需要修改。
运行就会根据wsdl生成我们需要的文件了。
四:编写客户端测试程序
public class TestMain {
/**
* @param args
* @throws ServiceException
* @throws RemoteException
*/
public static void main(String[] args) throws RemoteException, ServiceException {
   CalculatorService service=new CalculatorServiceLocator();
   System.out.println(service.getCalculator().sub(1, 2));
}
}
=================
控制台会打出
-1
========================
tomcat控制台会打出
sub[1,2]
========================
这样一个简单的jws就发布成功,客户端也测试成功了。

你可能感兴趣的:(java,apache,tomcat,Web,webservice)