本文将介绍用axis开发webservice服务.
1.下载axis1.4
2.创建一个简单的web工程,将axis的相关jar放到工程的WEB-INF\lib目录下
3.创建一个用于暴露webservice的javabean
package report.test.webservice; public class HelloWorld { public String sayHello(String name) { return "Hello " + name+"!This is a webservice test!"; } }
4.修改web.xml文件,加入以下内容:
<servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class> org.apache.axis.transport.http.AxisServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
5.创建基于HelloWorld webservice的server-config.wsdd配置文件,并放到WEB-INF目录下面
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper" /> <service name="sayHelloService" provider="java:RPC"> <parameter name="className" value="report.test.webservice.HelloWorld" /> <parameter name="allowedMethods" value="*" /> </service> <transport name="http"> <requestFlow> <handler type="URLMapper" /> </requestFlow> </transport> </deployment>
6.发布web工程到服务器,可以用tomcat,weblogic等任意web服务器
本人采用weblogic.启动weblogic,发布成功后.
在浏览器键入:http://localhost:7002/CTestWeb/services/sayHelloService
可查看发布成功的情况!
键入:http://localhost:7002/CTestWeb/services/sayHelloService?wsdl
可查看生成的wsdl的详细情况.
7.client端调用.
public static void main(String args[]) { String endpoint = "http://localhost:7002/CTestWeb/services/sayHelloService";// 指明服务所在位置 Service service = new Service(); // 创建一个Service实例,注意是必须的! try { Call call = (Call) service.createCall();// 创建Call实例,也是必须的! call.setTargetEndpointAddress(new java.net.URL(endpoint));// 为Call设置服务的位置 call.setOperationName("sayHello");// 注意方法名一样!! String res = (String) call.invoke(new Object[] { "xiao pin" }); System.out.println(res); } catch (Exception e) { e.printStackTrace(); } }
本文最后附上axis的高级特性攻略:如Handler,Chain,传递自定义javabean对象,传递文件,自定义异常等