无法将带有ejb的jar文件部署到glassfish 3.1.1

时间:2011-12-30 08:57:42

标签: java java-ee glassfish ejb jboss7.x

我尝试从中部署生成的jar文件 First example of ejb from Enterprise JavaBeans 3.1, 6th Edition by Andrew Lee Rubinger, Bill Burke

到glassfish 3.1.1并得到以下例外:

  

引起:java.lang.IllegalStateException:方法'public abstract int org.jboss.ejb3.examples.ch04.firstejb.CalculatorCommonBusiness.add(int [])'必须抛出至少一个java.rmi类型的异常。 RemoteException或其中一个超类       at com.sun.corba.ee.impl.presentation.rmi.IDLNameTranslatorImpl。(IDLNameTranslatorImpl.java:232)       at com.sun.corba.ee.impl.presentation.rmi.IDLNameTranslatorImpl。(IDLNameTranslatorImpl.java:65)       at com.sun.corba.ee.impl.presentation.rmi.IDLNameTranslatorImpl $ 2.run(IDLNameTranslatorImpl.java:169)       at com.sun.corba.ee.impl.presentation.rmi.IDLNameTranslatorImpl $ 2.run(IDLNameTranslatorImpl.java:167)       at java.security.AccessController.doPrivileged(Native Method)       at com.sun.corba.ee.impl.presentation.rmi.IDLNameTranslatorImpl.get(IDLNameTranslatorImpl.java:166)       at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl $ ClassDataImpl。(PresentationManagerImpl.java:153)       at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl $ 1.lookup(PresentationManagerImpl.java:103)       at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl $ 1.lookup(PresentationManagerImpl.java:100)       在com.sun.corba.ee.spi.orbutil.misc.WeakCache.get(WeakCache.java:114)       at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl.getClassData(PresentationManagerImpl.java:131)       at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.setTarget(ReflectiveTie.java:101)       在org.glassfish.enterprise.iiop.impl.POAProtocolMgr.validateTargetObjectInterfaces(POAProtocolMgr.java:315)       在com.sun.ejb.containers.BaseContainer.initializeHome(BaseContainer.java:1248)       at com.sun.ejb.containers.StatelessSessionContainer.initializeHome(StatelessSessionContainer.java:202)       at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:167)       在org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:230)       ......还有55个   引起:com.sun.corba.ee.impl.presentation.rmi.IDLTypeException:方法'public abstract int org.jboss.ejb3.examples.ch04.firstejb.CalculatorCommonBusiness.add(int [])'必须至少抛出一个java.rmi.RemoteException类型的异常或其超类之一       at com.sun.corba.ee.impl.presentation.rmi.IDLTypesUtil.validateExceptions(IDLTypesUtil.java:476)       at com.sun.corba.ee.impl.presentation.rmi.IDLTypesUtil.validateRemoteInterface(IDLTypesUtil.java:100)       at com.sun.corba.ee.impl.presentation.rmi.IDLNameTranslatorImpl。(IDLNameTranslatorImpl.java:226)       ......还有71个   |#]

但CommonBusiness只是一个界面,为什么它必须抛出任何异常?!

结果jar只包含带注释的bean,没有ejb-jar.xml或一些glassfish特定的xml文件(但据我所知,javaee6不需要任何ejb-jar.xml,也不需要特定于服务器的文件......)

这个jar已成功部署到JBoss AS7,所以我不知道在哪里挖...

2 个答案:

答案 0 :(得分:0)

对于单个源代码,我无法从页面导航到页面。

但是你必须为该方法抛出一个RemoteException

答案 1 :(得分:0)

我还使用arquillian-glassfish-managed-3.1触发了问题,并已发送到glassfish ejb领导者。

但是,我需要用其他方法来判断是否由玻璃鱼或arquillian引起的。