axis2 和spring整合

来源:互联网 发布:怎么在淘宝用图片搜索 编辑:程序博客网 时间:2024/05/21 20:23

 

废话不多说,根据步骤操作

最近需要咋项目中使用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);
}

 

 

 

 

原创粉丝点击