spring 整合 axis 实现webservice

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();
}


}




}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值