SpringMVC maven集成axis版本webservice
axis版本webservice
说明
项目上要为客户端提供axis版本webservice模拟器,记录下代码以便参考!
pom.xml配置
maven配置加入,如下代码:
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>javax.xml.rpc</groupId>
<artifactId>javax.xml.rpc-api</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.3</version>
</dependency>
web.xml配置
web.xml中插入如下代码:
<servlet>
<servlet-name>axis</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/services/*</url-pattern><!--axis 的 Web Service 的 Web 发布路径 -->
</servlet-mapping>
webservice wsdd配置
创建webapp/WEB-INF/server-config.wsdd文件,内容如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />
<!-- 系统服务 -->
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService" />
<parameter name="enableRemoteAdmin" value="false" />
<parameter name="className" value="org.apache.axis.utils.Admin" />
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion" />
<parameter name="className" value="org.apache.axis.Version" />
</service>
<!-- 自定义服务 -->
<service name="BCMservice" provider="java:RPC">
<parameter name="className" value="com.amarsoft.app.webservice.pojo.BCMservice" />
<parameter name="allowedMethods" value="*" />
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper" />
</requestFlow>
</transport>
</deployment>
服务端代码
服务端代码类
package com.amarsoft.app.webservice.pojo;
import org.apache.log4j.Logger;
public class BCMservice {
Logger logger = Logger.getLogger(getClass());
public String evaluate(String context) {
String result = null;
try {
logger.info("收到客户端请求,请求信息为:\n " + context);
result = "我是服务端,已收到你的请求";
} catch (Exception e) {
logger.error("服务端处理客户端信息异常:\n ", e);
}
logger.info("返回服务端结果为:\n " + result);
return result;
}
}
客户端测试代码
编写客户端代码运行测试:
package cn.com.jd.credit.webservice;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class AxisClient {
public static void main(String[] args) {
String endPoint = "http://localhost:11200/services/BCMservice";
String operation = "evaluate";
Service service = new Service();
String result = "";
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endPoint));
call.setOperationName(operation);
String request = "我是客户端,服务端你好!";
result = (String) call.invoke(new Object[] { request });
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}