xFire和spring集成成功了...但是遗留了个问题。求解

Vinyeah 2007-09-28 11:08:30
测试代码用的是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能正常返回数据.


求解....
...全文
430 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
figeonline 2007-11-22
  • 打赏
  • 举报
回复
<import resource= "classpath:org/codehaus/xfire/spring/xfire.xml " / >

最好加載在web.xml里
pl821229 2007-09-30
  • 打赏
  • 举报
回复
我是用的另一种集成方式
Vinyeah 2007-09-30
  • 打赏
  • 举报
回复
现在的情况是没有报错,只是使用spring集成方式的时候,返回的map一直都是size为0..
YuLimin 2007-09-30
  • 打赏
  • 举报
回复
数据绑定的方式不对导致的。
Vinyeah 2007-09-29
  • 打赏
  • 举报
回复
BookService.aegis.xml文件有。两种部署方式用的都是同样的文件。
只是因为部署方式的不同,导致的结果不同。

不用spring的时候,返回数组和map都可以.
用spring方式,返回数组可以,返回map的size始终为0
zjf405 2007-09-29
  • 打赏
  • 举报
回复
还没有成功吗,报什么错?
Vinyeah 2007-09-29
  • 打赏
  • 举报
回复
楼上的兄弟, BookService.aegis.xml文件一直都和BookService在同一个目录放着。
和spring集成方式的时候,还需要怎么配置一下么?
silver_zhao 2007-09-29
  • 打赏
  • 举报
回复
map 好像没有配置哦。加上就可以了
zjf405 2007-09-28
  • 打赏
  • 举报
回复
对于传输象list、map之类的对象时需要加一个配置文件,比如你的接口是BookService,那么你就加上一个BookService.aegis.xml,将它放在同BookService一个目录下
BookService.aegis.xml
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="sayHello">
<return-type componentType="com.xzwx.project1.pojo.User" />
</method>
</mapping>
</mappings>
sayHello换成你对应的方法名,componentType为map或list中存储的对象类型,我已经测试过返回list用上面的方法是可以的,map没试过

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧