Spring,XFire,Struts的一些解析

最近稍微研究了下XFire的东西,发现Web Service和Web MVC还是比较格格不入的,当然XFire可以集成到SpringWeb MVC就是了.
首先XFire原则上是不需要和Struts整合的,一是XFire是WebService,没有MVC的需求.

二是XFire或者Struts也没有提供相应的接口.

但是XFire是要挂到Spring上的.所以他有一个Spring的接口,org.codehaus.xfire.spring.remoting.XFireExporter,这个东西是SpringMVC的org.springframework.web.servlet.mvc.Controller,所以可以通过SpringMVC的DispatcherServlet来调用的.当然XFire本身也是有Servlet接口,所以可以直接挂在Web Container上的,但这样Spring的强大功能就用不了.
XFire和Spring的配置很简单,基本就是SpringMVC的配置(囧,这个东西本来就是Spring的Controller么).
例子:
applicationContext.xml (Spring的配置)片段


<!-- import xfire的Spring配置 -->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>

<!-- POJO bean -->
<bean id="citationService" class="ks.service.CitationServiceImpl"></bean>

<!-- Xfire WebService Bean 配置 -->
<bean id="citationService.xfire"
class="org.codehaus.xfire.spring.remoting.XFireExporter">
<property name="serviceFactory" ref="xfire.serviceFactory">
</property>
<property name="xfire" ref="xfire"></property>
<property name="serviceBean" ref="citationService"></property>
<property name="serviceClass" value="ks.service.CitationService"></property>
</bean>

<!--Spring MVC 配置-->
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/citationService">citationService.xfire</prop>
</props>
</property>
</bean>



web.xml配置(片段)

<servlet>
<servlet-name>citation</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>citation</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>


ks.service.CitationService

package ks.service;

public interface CitationService {
int getValue();
}



ks.service.CitationServiceImpl
package ks.service;

public class CitationServiceImpl implements CitationService {
public int getValue() {
return 999;
}

}


配置完毕发布到tomcat
访问http://localhost/XfireExample/services/citationService?wsdl即可看到wsdl的生成.

这里注意一下,如果你已经在这个web.xml里面配置了struts之类的东东,最好注意一下url patterns,别直接就 /* ,用namespace控制下,放到/web/* 之类的,不然就让struts之类的MVC框架拦截了.

附件有点大,包太多了估计.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值