xfire+spring 实践记录(一)

最近由于要做SOA的SAP接口,并且SAP接口是实时调用,采用了MQ+MB+SAP适配器方案,但是SAP适配器是自己开发的JCO调用实现。
这里我把SAP适配器做成了Web service。由于我的SAP是一个单独的web service项目,里面才有xfire实现了web service的服务端。
客户端采用采用spring+xfire的方式,将web service配置成一个spring bean通过 serviceFactory.getBean("youserver"),实例化web service接口。最终实现webservice 的调用,并且可以在这之上实现安全性。
源代码如下:
服务端:
1、接口:WebServiceSAP
package com.sap.jco.ws;
import java.util.Map;
public interface WebServiceSAP {
/**
* 发送rfc请求
* @param interfaceConfig
* @param param
* @param maplist
* @return
* @throws AppException
*/
public String sendRfc(Map interfaceConfig,String param,Map maplist);
/**
* 通过参数发送rfc请求
* @param interfaceConfig
* @param param
* @return
* @throws AppException
*/
public String sendRfcByParam(Map interfaceConfig, String param);

/**
* 测试
* @param interfaceConfig
* @param param
* @return
*/
public String wsTest(Map interfaceConfig, String param);

}
2、实现方法:WebServiceSAPImpl
package com.sap.jco.ws;


public class WebServiceSAPImpl implements WebServiceSAP {
int trasRows = 500;

public String sendRfc(Map interfaceConfig, String param, Map maplist){
String returnvalue="";
                  //具体实现方法
return returnvalue;
}

public String sendRfcByParam(Map interfaceConfig, String param){
String returnvalue="";
// 具体实现
return returnvalue;
}

public String wsTest(Map interfaceConfig, String param) {
return "web service test,input is:"+param;
}
}


3、服务端配置:
web.xml
<servlet>
    <servlet-name>XFireServlet</servlet-name>
    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>XFireServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

4、服务部署
services.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>SAPService</name>
<namespace>http://www.dawnpro.com.cn/xserver</namespace>
<serviceClass>
com.sap.jco.ws.WebServiceSAP
</serviceClass>
<implementationClass>
com.sap.jco.ws.WebServiceSAPImpl
</implementationClass>
</service>
</beans>
5、启动服务,访问地址:
http://127.0.0.1:88/wssap/services/SAPService?WSDL地址,显示xml,说明web Service部署成功

你可能感兴趣的:(spring,Web,xml,webservice,SOA)