40
Axis WebService 技术指南
}
public void cleanup() { }
public void flowComplete(MessageContext ctx) {
System.out.println(\); }
public HandlerDescription getHandlerDesc() {
System.out.println(\); }
public Parameter getParameter(String name) {
System.out.println(\); }
public void init(HandlerDescription handlerDescription) { }
public InvocationResponse invoke(MessageContext ctx) throws }
System.out.println(ctx.getEnvelope().toString()); return InvocationResponse.CONTINUE;
System.out.println(\); return null; return null;
System.out.println(ctx.getEnvelope().toString()); System.out.println(\);
AxisFault {
编写module.xml文件
41
Axis WebService 技术指南
编写services.xml文件
mep=\ class=\ /> mep=\ class=\ ver\ />
在[tomcat_home]\\webapps\\axis2\\WEB-INF\\conf中axis2.xml文件中加入内容,在所有的 打包发布module,在c盘建立CustomModuleService,然后将CustomModule.class和CustomHandler.class以及类路径目录复制到该目录。然后将module.xml文件放到META-INF(没有新建)目录。 运行jar命令:jar cvf custom-module.mar . 欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途 42 Axis WebService 技术指南 将生成的custom-module.mar文件粘贴到[tomcat_home] \\webapps\\axis2\\WEB-INF\\modules目录中 发布WebService,建立目录simpleWebService,将SimpleWebService.xml和类路径复制到该目录下,将services.xml复制到META-INF目录。 运行jar命令:jar cvf simple-service.aar . 将生成的simple-service.aar文件复制到[tomcat_home] \\webapps\\axis2\\WEB-INF\\services目录下 然后重启tomcat服务。 客户端访问WebService代码 package com.hoo.service; import javax.xml.namespace.QName; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; /** * function:访问SimpleWebService * @author hoojo * @createDate 2011-3-15 上午07:26:08 * @file SimpleWebServiceClient.java * @package com.hoo.service * @project Axis2WebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public class SimpleWebServiceClient { public static void main(String[] args) throws AxisFault { String target = RPCServiceClient client = new RPCServiceClient(); Options options = client.getOptions(); options.setManageSession(true); EndpointReference epr = new EndpointReference(target); options.setTo(epr); QName qname = new QName(\, Object[] result = client.invokeBlocking(qname, new Object[] \; \); { null }, new Class[] { int.class }); 欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途 43 Axis WebService 技术指南 } } System.out.println(result[0]); 九、 使用SoapMonitar监视WebService的请求和响应信息 使用soapmonitar可以监视到请求和响应的WebService的基本信息,可以讲响应在控制台的信息显示在applet控件上。 步骤如下: 1、 部署相关的applet和servlet Axis2有自带的monitor模块,这里就不需要单独安装。在[tomcat_home]\\webapps\\axis2\\WEB-INF\\lib目录中,找到axis2-soapmonitor-servlet-1.5.3.jar这个文件,将这个文件解压后,将里面的servlet的class文件放到[tomcat_home]\\webapps\\axis2\\WEB-INF\\classes目录下。将applet的class放到[tomcat_home]\\webapps\\axis2这个目录下即可。 2、 配置Servlet,这里配置的Servlet就包含上一步复制的servlet-class 在web.xml中增加如下配置 3、 在要监视的WebService的services.xml文件中关联soapmonitor, services.xml配置文件如下: 44 Axis WebService 技术指南 可以看到Java的Applet,界面如下: 然后运行请求执行CustomModuleService这个service的时候,你就可一看到上面出现xml的内容。上面的内容是和控制台的同步输出的。 欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途