Seam 2.1.0.SP1版本包含了许多功能和更新,其中之一是更新了WebLogic集成参考指南章节
此更新包含了与新的WebLogic应用服务器10.3集成的最新信息。许多Seam/WebLogic用户都期待着这个WebLogic的发布。有几个与EJB 3支持的wls 10.0.MP1相关的问题,这些问题计划在10.3发布中修复。
好消息
好消息是,原始的可变参数问题在此版本中已修复,不需要补丁。对于那些不熟悉此Weblogic 10.0.MP1(以及更早的版本)的用户,它们将无法编译任何使用可变参数的EJB。由于某种原因,weblogic的编译器会将此视为方法具有瞬态修饰符,这会导致方法无法编译。
坏消息
坏消息是,针对在EJB3中发现的其他问题的修复似乎并未包含在10.0.MP1版本中。我只能想象,由于BEA被Oracle收购,其中一些更改丢失了。一些Seam用户已经看到了这个问题,我的调查也证实了这一点。
此问题会导致某些EJB方法被错误地省略在Weblogic生成的内部存根类中。这与受可变参数问题影响的相同文件,所以我假设它与他们的修复有关。这会导致部署期间出现以下错误信息。
<<Error> <EJB> <BEA-012036> <Compiling generated EJB classes produced the following Java compiler error message: <Compilation Error> TimerServiceDispatcher_qzt5w2_Impl.java: The type TimerServiceDispatcher_qzt5w2_Impl must implement the inherited abstract method TimerServiceDispatcher_qzt5w2_Intf.scheduleTimedEvent(String, Schedule, Object[]) <Compilation Error> TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java: Type mismatch: cannot convert from Object to Timer <Compilation Error> TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java: Type mismatch: cannot convert from Object to Timer> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1223409267344' for task '0'. Error is: 'weblogic.application.ModuleException: Exception preparing module: EJBModule(jboss-seam.jar)
解决方案
由于EJB3问题仍然存在,您在使用Weblogic和Seam时有几个选择。10.3使用EJB 3,请使用Seam参考指南中描述的
- jboss-seam-wls-compatible.jar代替jboss-seam.jar,请参阅此处:WebLogic中的EJB3问题
- 请联系BEA的客户支持并请求补丁。有适用于10.0.MP1发布的补丁,我希望它也适用于10.3
一如既往,我们将努力跟踪此问题,并在补丁或发布版本公开时,我们将审查并更新我们的文档。