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就发布成功,客户端也测试成功了。