一種古老的技術:axis1.4操作WebService,實現與Spring整合
阿新 • • 發佈:2018-11-13
這是pom檔案中需要的axis需要的依賴
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-remoting</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId >org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis-jaxrpc</artifactId >
<version>1.4</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.4</version>
</dependency>
然後是編寫一個整合的類
package com.qtone.hdkt.service.data;
import javax.xml.rpc.ServiceException;
import org.springframework.context.ApplicationContext;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
import com.qtone.hdkt.service.data.DataSend_PortType;
/**
* 用於axis1與Spring進行整合
* @author qichenghao
* @date: 2018年1月9日 下午1:34:11
* @throws
*/
public class WebService extends ServletEndpointSupport {
/** spring初始化 **/
private ApplicationContext applicationContext;
/** 介面類 **/
private DataSend_PortType dataSend_PortType;
@Override
protected void onInit() throws ServiceException {
// 初始化Spirng 配置
applicationContext = super.getApplicationContext();
//例項化DataSend_PortType
dataSend_PortType = (DataSend_PortType) applicationContext.getBean("dataSendSOAP");
}
/**
* 呼叫獲取資料的方法
*
* @author qichenghao
* @date:2018年1月9日 下午12:07:32
* @param data
* @return
* @throws java.rmi.RemoteException
*/
public String sendXmlMessage(java.lang.String data) throws java.rmi.RemoteException{
return dataSend_PortType.sendXmlMessage(data);
}
}
這裡的DataSend_PortType介面類,就是客戶端需要訪問的服務端的入口類(處理資料的類):
dataSend_PortType.sendXmlMessage(data):這個方法就是處理資料的方法;
例項化:DataSendSOAPImpl類 此類實現了DataSend_PortType介面
<!-- 例項化axis類 -->
<bean id="dataSendSOAP" class="com.qtone.hdkt.service.data.DataSendSOAPImpl" />
web.xml檔案中
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
在server-config.wsdd檔案中配置:
<ns1:parameter name="className" value="com.qtone.hdkt.service.data.WebService"/>
<ns1:parameter name="wsdlServicePort" value="DataSendSOAP"/>
這樣訪問的地址:http://localhost:8080/專案名/services/DataSendSOAP?wsdl