- 浏览: 145392 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
95546772:
我的QQ是 95546772
使用Jencks实现Hibernate与Jackrabbit的分布式事务 -
95546772:
您好,我正在学习jackrabbit.谷歌的连接失效了.能否发 ...
使用Jencks实现Hibernate与Jackrabbit的分布式事务 -
chenjson_chen:
楼主的这个说明,解答了现在项目中遇到的问题
关于Spring嵌套事务 -
beykery:
没必要这么写。。。。
回收DirectByteBuffer -
lc_windson:
楼主,关于这一块,我遇到了一个很困惑的问题,分析.tii文件的 ...
Lucene索引文件解析之“项”
这两个bug是在调试ALE接口中define方法时发现,
BUG1
步骤:
现象:
分析:
解决:
</string>
BUG1
步骤:
</string>
</string>
</string>
分析:
</string>
解决:
</string>
总结:
</string>
BUG1
步骤:
WS调用define方法,定义一个ECSpec
现象:
抛出异常信息,说某类的属性没有“写方法”(setter),见如下异常堆栈信息:
[handler.DefaultFaultHandler]-[INFO] Fault occurred!
org.codehaus.xfire.fault.XFireFault: No write method for property {http://_1.xsd.ale.epcglobal}excludePattern in class epcglobal.ale.xsd._1.ECExcludePatterns
at org.codehaus.xfire.aegis.type.basic.BeanType.writeProperty(BeanType.java:283)
at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:167)
at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:159)
at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:159)
at org.codehaus.xfire.aegis.type.basic.ArrayType.readCollection(ArrayType.java:80)
at org.codehaus.xfire.aegis.type.collection.CollectionType.readObject(CollectionType.java:36)
at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:159)
at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:159)
at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:159)
at org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:169)
at org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:206)
at org.codehaus.xfire.service.binding.WrappedBinding.readMessage(WrappedBinding.java:51)
at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
分析:
org.codehaus.xfire.fault.XFireFault: No write method for property {http://_1.xsd.ale.epcglobal}excludePattern in class epcglobal.ale.xsd._1.ECExcludePatterns<string>
经发现,epcglobal.ale.xsd._1.ECExcludePatterns确实没有为excludePattern 提供setter方法。
epcglobal.ale.xsd._1.ECExcludePatterns并不是由手工编写,而是通过XFire的eclipse插件根据 ALE.xsd文件自动生成。因此,初步推断很可能是自动生成代码的组件没有能够为excludePattern提供setter方法,后对比其它自动生 成的代码发现,只有集合类的属性不会提供setter方法;进一步思考发现:
@XmlElement(required = true)
protected List<string> excludePattern;</string>
<string> </string>
<string> 集合类属性通常对应于XSD中元素的概念,如上述代码中,“@XmlElement”的注释就就说明了excludePattern在xml是一个元素。 根据这个思路推断,自动代码生成的规则对“@XmlElement”只会生成getter方法,不提供setter方法。</string>
<string></string>
解决:
</string>
<string> 手工添加setter方法解决,这个应用上的bug。 </string><string>
<string></string>
BUG1
步骤:
</string>
<string> 同上</string><string> 现象:
<string></string>
</string>
<string> 同上</string><string>
<string></string>
</string>
<string> 2007-11-19 19:59:43 [handler.DefaultFaultHandler]-[INFO] Fault occurred!</string><string>
<string> org.codehaus.xfire.fault.XFireFault: No write method for property {http://_1.xsd.ale.epcglobal}includeSpecInReports in class epcglobal.ale.xsd._1.ECSpec</string>
<string> at org.codehaus.xfire.aegis.type.basic.BeanType.writeProperty(BeanType.java:283)</string>
<string> at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:167)</string>
<string> at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:159)</string>
<string> at org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:169)</string>
<string> at org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:206)</string>
<string> at org.codehaus.xfire.service.binding.WrappedBinding.readMessage(WrappedBinding.java:51)</string>
<string> at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)</string>
<string> at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)</string>
<string> at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)</string>
<string> at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)</string>
<string> at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)</string>
<string> at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)</string>
<string> at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)</string>
<string> at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)</string>
<string> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)</string>
<string> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)</string>
<string> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)</string>
<string> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)</string>
<string> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)</string>
<string> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)</string>
<string> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)</string>
<string> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)</string>
<string> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)</string>
<string> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)</string>
<string> at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)</string>
<string> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)</string>
<string> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)</string>
<string> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)</string>
<string> at java.lang.Thread.run(Thread.java:595)</string>
<string></string>
分析:
</string>
<string> 根据bug1的分析思路发现,epcglobal.ale.xsd._1.ECSpec类中为includeSpecInReports提供了setter方法,而为什么还会抛出没有写方法的错误呢?这让相当费解......</string><string>
<string> </string>
<string> 多次单步调试源代码没有发现代码上的疑问,还是只能对比其它自动生成的类。终于意外发现,自动代码生成的时候,对其基本数据类型(int、long等) 中,唯有boolean的类型在对应到java中Boolean类型,而不像long直接对应于java中long,我试探性的将代码中Boolean改 为boolean,并修改了对应的setter方法,再次调用问题解决。</string>
<string> </string>
<string> 问题虽解决了,但没有道理应为是Boolean就不能识别其setter方法。呵呵,我忽略了方法的参数,尽管不论是Boolean还是boolean,它们的setter方法名都是setIncludeSpecInReports</string>
<string> ,可是它们方法的参数类型不同,那么XFire通过反射调用方法时不光识别方法名,还对参数类型也进行了对比,这也是合乎情理的,毕竟方法是可以重载的。</string>
<string></string>
解决:
</string>
<string> 修改Boolean为boolean,且修改对应的setter方法。</string><string>
<string></string>
总结:
</string>
<string> 上述两个BUG都没有根除问题,那是因为需要修正XFire的源代码,这个手术就复杂啦,还是留给XFire的开源团队来解决吧。</string>
<string> 另外,在流行的开源组件、框架也好,它们也不可能摆脱BUG的梦魇,当发现BUG时,发呆是没有用的,搞来源代码调试分析,总能找到答案。</string>
发表评论
-
回收DirectByteBuffer
2011-03-03 10:33 2870为避免GC的负效应, 使用DirectByteBuffer管理 ... -
基于DSL风格的代码重构
2010-10-29 09:32 206什么样代码是简洁易懂, 这很难有个统一的标准, 因为它很 ... -
应用DirectBuffer提升系统性能
2010-08-19 13:01 3296Java 2 SE 6 doc : Given ... -
netty应用中接收缓存覆写的陷阱
2010-08-17 13:31 6426version : netty-3.2.1.final ... -
GWT应用经验小结
2009-03-16 18:29 38951. pendingSrc 问题描述:Image的set ... -
解读《使用Jencks实现Hibernate与Jackrabbit的分布式事务》
2009-01-15 18:15 5554前言 本文是针对《使用Jencks实现Hibernate与 ... -
使用Jencks实现Hibernate与Jackrabbit的分布式事务
2009-01-13 10:40 4366前言 这是一篇用Spring和Jencks ... -
从Erlang看高并发可容错系统设计原则
2008-12-25 18:30 2558《面对软件错误构建可靠的分布系统》 写道 Erlang 的世 ... -
Lucene索引文件解析之“项”
2008-12-23 17:25 1890接上文Lucene索引文件解析之“域”。 关于项(Ter ... -
Mockito入门
2008-12-17 18:35 11456简介 InfoQ-使用Mockito 1.5监视普通对象 ... -
开源让我兴奋
2007-01-08 11:47 866一直在设想自己设计一个java过程自动化的工具,但苦于经验、技 ... -
对象的创建和销毁
2008-08-31 05:23 1037考虑用静态工厂方法代替构造器 静态工厂方法的名字使得调用者 ... -
Jackrabbit 索引配置说明
2008-09-02 00:35 3572从1.4版本之后,jackrabbit开始支持节点的属性索引配 ... -
关于Spring嵌套事务
2008-09-03 05:34 13646不久前,为了避免事务的嵌套,刻意去修改以前的设计,导致各部分之 ... -
教练Marc Lammers语录
2008-09-09 02:06 1089本文摘之InfoQ:世界顶尖 ... -
速度计算有偏差
2008-09-18 01:24 1159团队有4个开发人员,3个测试人员,试行了4天的小迭代,完成的工 ... -
任务板用起来了
2008-09-25 00:53 2296好久就知道任务是个项 ... -
用例编写推荐守则
2008-10-08 07:52 1122没有最佳的用例模板,格式和章节是为用例的内容服务的,它们 ... -
Lucene索引文件解析之“域”
2008-12-12 00:42 2978引言 目前最新的Lucene的版本是2.4.0,但关于索引 ... -
GWT中RequestBuilder使用贴士
2008-12-09 13:35 7658GET请求 String url = // 动态生成 ...
相关推荐
总结来说,"xfire1.2.6_plugin"是Eclipse平台上的一个强大工具,它将XFire的Web Services开发能力无缝整合到Eclipse环境中,让开发者能够在熟悉的开发环境中高效地进行Web Services的开发和测试。通过理解并充分利用...
在IT行业中,集成框架是开发复杂应用程序的关键,Spring和XFire就是两个重要的工具。Spring作为一个强大的Java企业级应用开发框架,提供了丰富的功能,包括依赖注入、面向切面编程(AOP)以及各种服务管理。而XFire...
8. **依赖管理**: 提供的`xfire1.2.6_all`压缩包可能包含了所有必要的依赖文件,这方便开发者快速集成到项目中,避免了手动解决依赖问题的麻烦。 9. **文档和社区支持**: 虽然XFire 1.2.6相对较旧,但在其活跃时期...
首先,`xfire-all-1.2.6.jar`是核心库文件,它集成了XFire的所有功能,包括网络协议处理、游戏状态同步、服务器发现等。开发人员可以通过导入这个JAR文件,快速地在项目中集成XFire的全部功能,实现游戏服务器间的...
xfire1.2.6 源代码 源文件 源程序。供调试、研究用。
xfire1.2.6是早年间一个流行的开源SOAP服务框架,它允许开发者构建和消费Web服务。WS-Security(Web Services Security)是基于SOAP消息的安全标准,用于保护Web服务免受各种攻击,如篡改、伪造等。在这个示例中,...
Xfire1.2.6版API手册.chmXfire1.2.6版API手册.chmXfire1.2.6版API手册.chmXfire1.2.6版API手册.chm
在本压缩包“XFire1.2.6”中,包含的是XFire 1.2.6版本所需的全部jar文件,这些文件是开发者进行基于webservice开发的重要组成部分。 一、XFire简介 XFire是一个轻量级的Web服务实现,它通过简化API和快速的性能,...
XFire1.2.6的JAR包本质上就是一个可执行的Java程序,包含了运行XFire所需的所有代码和资源。用户可以通过运行这个JAR文件来启动XFire服务,实现游戏的联机功能。在Java环境中,使用"java -jar"命令即可执行JAR包,...
去除xfire传递date类型的数据时值为null时的异常的jar包
本篇将详细讲解如何利用Spring 3.0与Xfire 1.2.6进行集成,以开发高效的Web服务。 首先,让我们了解Spring 3.0。Spring 3.0是Spring框架的一个重大更新,引入了许多新特性和改进,如支持JSR-303 Bean Validation,...
本项目"xfire1.2.6+spring2.5整合"是将XFire 1.2.6与Spring 2.5这两个开源框架进行融合,以实现更高效的服务导向架构。下面将详细解释这两个框架以及它们整合的意义和方法。 XFire是一个基于Java的Web服务框架,它...
总结,Xfire 1.2.6 API为游戏开发者和社区建设者提供了一个强大的工具箱,通过这个工具,他们可以创建丰富的游戏周边应用,提升玩家的社交体验。掌握和熟练运用API,是实现这一目标的关键步骤。对于希望在游戏社区...
XFire 1.2.6 是一个流行的开源 Web 服务框架,提供了多种调用 Web 服务的方法。了解这些方法对于开发高效、可靠的 Web 服务客户端非常重要。本文将详细介绍 XFire 1.2.6 中的三种调用 Web 服务的方法:动态客户端...
XFire 1.2.6是这个框架的一个版本,包含了丰富的资源,适合开发者进行学习和实践。 在XFire 1.2.6的所有资源中,我们可以找到以下关键组件和资料: 1. **XFire开发指南.pdf**:这份文档是开发者的重要参考资料,它...
这里的两个文件可能是同一版本的不同压缩方式,以满足不同用户的需求。 Xfire的核心功能包括: 1. **即时通讯**:Xfire提供了聊天室、好友列表、私人消息等即时通讯功能,使玩家可以方便地与朋友沟通游戏心得,...
xfire和CXF是两个广泛使用的Java Web服务框架,它们允许开发人员创建、发布和消费Web服务。本文将深入探讨xfire 1.2.6服务器版本及其与CXF 1.2.6客户端的协同工作,以理解它们如何促进对象的传递和返回。 xfire是一...
综上所述,Xfire 1.2.6不仅是一个通讯工具,更是一个游戏世界的社交中心。它通过强大的游戏集成、即时通讯和丰富的社区功能,塑造了一个独特的游戏社交环境。虽然时代变迁,但Xfire 1.2.6的精髓仍值得我们回味和学习...
这些可能是项目的两个关键部分。`WSSpring`可能包含了Spring配置文件以及与服务相关的类,而`WSTest`可能包含测试用例,用于验证服务端和客户端的正确配置和功能。 总结来说,"spring2.5+xfire1.2.6 客户端和服务端...
xfire1.2.6是针对MyEclipse集成开发环境的一个插件,它主要用于支持XML Web服务的开发和部署。这个插件的核心功能是帮助开发者在MyEclipse中轻松地创建、测试和发布基于SOAP(Simple Object Access Protocol)的Web...