axis2 和spring整合

 

廢話不多說,根據步驟操作

最近需要咋項目中使用web service,但是在和spring集成的過程中,無法通過依賴注入的方式獲取到service層的實例,

經過查找相關資料進行驗證,得到如下結論

 

1:在項目中添加spring和axis2支持,這步是必須的,關於怎麼添加spring和axis2支持在這裏就不多說了!

 

2:axis2集成spring需要額外的添加axis2-spring-1.6.2.jar包

 

3:在application.xml文件中添加如下代碼

<!-- axis2整合spring需要如下配置 -->
 <bean id= "applicationContext"
         class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" />

 

4:在services.xml是如下配置

 

<serviceGroup>
 
<service name="messageService">
 <description>
  This service is common webService.
 </description>
 <!-- axis2整合spring需要如下配置 -->
 <parameter name="ServiceObjectSupplier">
        org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
    </parameter>
    <!-- axis2整合spring,如下配置是服務的ben(註解名稱) -->
    <parameter name="SpringBeanName">messageWebService</parameter>
    <!-- 服務接口,這裏配置的是接口,真正的實現類是MessageWebServiceImpl -->
    <parameter name="ServiceClass">com.eshore.fssc.ws.message.service.MessageWebService</parameter>

<!--  只讀 -->
 <messageReceivers>
         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
             class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />

<!-- 讀寫 -->
 <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
                     class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
  </messageReceivers>
</service>

</serviceGroup>

 

然後在接口中就可以通過如下配置獲取得到相應的service層實例,記得接口服務一定要抽象於接口

@Autowired
 private MessageService messageService;

 

5:以下是我暴露出的接口服務

 

@Service("messageWebService")
public class MessageWebServiceImpl implements MessageWebService{

 @Autowired
 private MessageService messageService;
 
 /*
  * @ 版本信息:2013-08-06 pj add
  *
  * @ 功能說明:提供同步代辦接口服務
  */
 public ResultDto[] synSubSystemMessage(MessageDto[] messageDtos) {
  System.out.println(messageService);
  return messageService.synSubSystemMessage(messageDtos);
 }

 /*
  * @ 版本信息:2013-08-06 pj add
  *
  * @ 功能說明:提供同步代辦狀態接口服務
  */
 public ResultDto[] synCompleteMessage(MessageDto[] messageDtos) {
  return messageService.synCompleteMessage(messageDtos);
 }
 
}

 

/*

接口

*/

 

public interface MessageWebService {

 public ResultDto[] synSubSystemMessage(MessageDto[] messageDtos);
 
 public ResultDto[] synCompleteMessage(MessageDto[] messageDtos);
}

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章