本文将介绍用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对象,传递文件,自定义异常等