xFire和spring集成成功了...但是遗留了个问题。求解
测试代码用的是xfire自带的demo里的book。按照demo原有方式部署完以后。客户端调用正常。现尝试把xfire集成到spring里。
web.xml配置如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>XFireServlet</servlet-name>
<display-name>XFire Servlet</display-name>
<servlet-class>
org.codehaus.xfire.spring.XFireSpringServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
spring的配置如下:
<beans>
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<bean id="baseWebService"
class="org.codehaus.xfire.spring.remoting.XFireExporter"
lazy-init="false" abstract="true">
<property name="serviceFactory" ref="xfire.serviceFactory" />
<property name="xfire" ref="xfire" />
</bean>
<bean id="bookService" parent="baseWebService">
<property name="serviceBean" ref="bookServiceImpl" />
<property name="serviceClass"
value="org.codehaus.xfire.demo.BookService" />
</bean>
<bean id="bookServiceImpl"
class="org.codehaus.xfire.demo.BookServiceImpl" />
</beans>
所用到的服务接口;
public interface BookService
{
public Book[] getBooks();
public Book findBook(String isbn) throws BookException;
public Map getBooksMap();
}
部署以后服务正常启动。客户端调用getBooks()能正常返回,但是调用getBooksMap的时候,返回的map始终size为0.
相同的代码,按照xfire的demo中用org.codehaus.xfire.transport.http.XFireConfigurableServlet部署的话, getBooksMap能正常返回数据.
求解....