我尝试从中部署生成的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,所以我不知道在哪里挖...
答案 0 :(得分:0)
对于单个源代码,我无法从页面导航到页面。
但是你必须为该方法抛出一个RemoteException
答案 1 :(得分:0)
我还使用arquillian-glassfish-managed-3.1触发了问题,并已发送到glassfish ejb领导者。
但是,我需要用其他方法来判断是否由玻璃鱼或arquillian引起的。