廢話不多說,根據步驟操作
最近需要咋項目中使用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);
}