JBoss5 可否 上 EJB2

09-02-09 big1980
我把项目从jboss4.0 移到 jboss5.0GA上,就出现问题,我用的是ejb2,不止是否支持呢?

错误内容如下:

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

... 54 more

Caused by: javax.ejb.EJBException: Invalid invocation, check your deployment packaging, method=public abstract com.driverstand.webshop.common.mysql.general.OmGeneralSession com.driverstand.webshop.common.mysql.general.OmGeneralSessionHome.create() throws java.rmi.RemoteException,javax.ejb.CreateException

at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invokeHome(StatelessSessionContainer.java:167)

at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:187)

at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invokeHome(StatelessSessionInstanceInterceptor.java:97)

at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:56)

at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:125)

at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)

at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:161)

at org.jboss.ejb.plugins.SecurityInterceptor.process(SecurityInterceptor.java:230)

at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:205)

at org.jboss.ejb.plugins.security.PreSecurityInterceptor.process(PreSecurityInterceptor.java:99)

at org.jboss.ejb.plugins.security.PreSecurityInterceptor.invokeHome(PreSecurityInterceptor.java:88)

at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:132)

... 76 more

而jboss4上面,我改了以下三个地方就好了

1] Edit conf/jboss-service.xml and make CallByValue as 'true' in NamingService as below

<mbean code="org.jboss.naming.NamingService"

name="jboss:service=Naming"

xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">

true

2] Edit deploy/ear-deployer.xml, and set Isloated and CallByValue as true

3]Edit deploy\jbossweb-tomcat55.sar\META-INF\jboss-service.xml , and set Java2ClassLoadingCompilance and UseJbossWebLoader attributes as false

然而jboss5好像目录变得蛮厉害,3]这个目录没有了,而deploy\jbossweb.sar\META-INF\里面也没有

jboss-service.xml

有谁可知道,望告知一二,谢谢!

         

big1980
2009-02-10 09:58
望高手们不吝赐教阿,困扰我多多时了

顺便说一下,我的浏览器

[Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6]

无法在这里发表。。。。

banq
2009-02-10 13:18
可以运行EJB2 EJB是兼容的。

你的问题是因为classloader设置,你似乎要将WEB的classloader和ejb分开。

JBoss5正如我几年前指出一样,是一个完全重新编写可彻底分离的组件服务器,因此,很多部署方法和配置与以前完全不同了,思路也不一样。

如果说现在EJB和非EJB还有什么区别的话,就是还是部署困难和麻烦,特别要掌握复杂烦人的classloader策略,不知这个问题何时简单化。

dearshor
2009-02-10 13:46
jboss 4.0 迁移到 jboss 5.0,oops!跨度够大的呀~~

从4.0到4.2,变化就很大了:4.0里的【deploy\jbossweb-tomcat55.sar】到4.2.2就变成了【deploy\jboss-web.deployer】;4.2.2已经完全支持ejb3.0了。

从4到5,major version都改变了,变化大是可想而知的。目前我还在用jboss 4.2.2,还没有时间研究jboss5,所以爱莫能助啦 :-) 楼主仔细阅读过jboss 5的文档了吗?你要的答案我想能在那里找到。

BTW, 不大理解为什么要在全面支持Java EE 5+ / ejb3.0+ stack 的jboss application server 5 上部署陈旧的ejb2. 客户强制要求的?同情你~~哈哈 :-)

dearshor
2009-02-10 13:54
On 2009年02月10日 13:18 banq wrote:

>特别要掌握复杂烦人的classloader策略,不知这个问题何时简单化。

期待基于OSGi的application server(jboss5也是其中之一)能利用OSGi带来的classload magic解决此问题。:-)

猜你喜欢
3Go 1 2 3 下一页