1.创建java类
LoginLogWebservice
代码如下:
package com.platform.webservice;
import java.util.HashMap;
import java.util.Map;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
import com.platform.um.loginlog.service.ILoginlogService;
/**
*
* @Description: 其他系统调用UM对外公布的 登出日志更新
* @author chen
* @version 1.0,
* @date 2013-4-18 下午05:15:45
*/
public class LoginLogWebservice extends ServletEndpointSupport {
private ILoginlogService loginLogService;
/**
* 调用 方法 更新的UM系统记录的登录日志信息
* 远程调用时 ipAddress , systemId必填
* @param ipAddress
* @param id loginlog 的id
* @param systemId 归属系统的id code
* @return
*/
public String updateLoginlog(String ipAddress,String id,String systemId){
Map<String,Object> paramMap = new HashMap<String,Object>();
paramMap.put("ipAddress", ipAddress);
paramMap.put("systemId", systemId);
paramMap.put("id", id);
try {
//获取 service 实例
loginLogService = (ILoginlogService) getApplicationContext().getBean("com.platform.um.loginlog.service.impl.LoginlogServiceImpl");
loginLogService.updateLoginlog(paramMap);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
----------------------------------------------------------------------------------------
2.配置web.xml
<!-- start webservice by aixs -->
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>5</session-timeout>
</session-config>
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<!-- end webservice by aixs -->
----------------------------------------------------------------------
3.在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="AdminService" type="" 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" type="" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service>
<service name="LoginLogWebService" type="" provider="java:RPC" style="rpc" use="encoded">
<parameter name="scope" value="Request"/>
<parameter name="className" value="com.platform.webservice.LoginLogWebservice"/>
<parameter name="allowedMethods" value="*"/>
<namespace>urn:LoginLogWebService</namespace>
</service>
</deployment>
-----------------------------------------------
4.测试:
package test;
import java.net.URL;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import com.longtech.configuration.BaseConfiguration;
/**
* 测试 webservice 接口
* @author chen
*
*/
public class TestClient {
private static String md5Key = BaseConfiguration.getString("md5_key");
public static void init(String host, int port, final String username, final String password) {
System.setProperty("http.proxyType", "4");
System.setProperty("http.proxyPort", Integer.toString(port));
System.setProperty("http.proxyHost", host);
System.setProperty("http.proxySet", "true");
}
public static void main(String[] args) {
//通过设置代理 进行外网连接
String proxy = "172.16.251.58";
int port = 3128;
String username = "usr";
String password = "pwd";
//通过设置代理 进行外网连接
init(proxy, port, username, password);
try {
//webservice 对应的本地 地址
String targetEendPoint = "http://11.205.242.110:8080/platform/services/LoginLogWebService";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(targetEendPoint));
//指定调用的webservice 方法 换用不同的方法进行测试
call.setOperationName(new QName(targetEendPoint, "updateLoginlog"));
String result = (String) call.invoke(new Object[]{"1","2","3"});
System.out.println("----"+result);
} catch (Exception e) {
e.printStackTrace();
}
}
}