2011-12-30 50 views
0

我tryed部署從 First example of ejb from Enterprise JavaBeans 3.1, 6th Edition by Andrew Lee Rubinger, Bill Burke不能與EJB部署JAR文件的GlassFish 3.1.1

產生的JAR文件的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) 在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(Presentati onManagerImpl.java:100) 在com.sun.corba.ee.spi.orbutil.misc.WeakCache.get(WeakCache.java:114) 在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) at org.glassfish.enterprise.iiop.impl.POAProtocolMgr.validateTargetObjectInterfaces( POAProtocolMgr.java:315) 在com.sun.ejb.containers.BaseContainer.initializeHome(BaseContainer.java:1248) 在com.sun.ejb.containers.StatelessSessionContainer.initializeHome(StatelessSessionContainer.java:202) 在COM。 sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:167) at org.glassfish.ejb.startup.EjbApplication.loadCont ainers(EjbApplication.java:230) ...... 55多個 造成的:com.sun.corba.ee.impl.presentation.rmi.IDLTypeException:方法公共抽象INT org.jboss.ejb3.examples.ch04.firstejb .CalculatorCommonBusiness.add(INT [])」必須拋出型java.rmi.RemoteException異常中的至少一個異常或在其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

請提供一些代碼。 – Artem 2011-12-30 09:02:37

+0

請參閱: https://github.com/jbossejb3/oreilly-ejb-6thedition-book-examples/tree/master/ch04-firstejb/src/main/java/org/jboss/ejb3/examples/ch04/firstejb – ichaki5748 2011-12-30 09:05:00

回答

0

我不能從頁面到一個單一源代碼的網頁瀏覽。

但你必須拋出RemoteException該方法

+0

「我無法從頁面導航到單個源代碼的頁面。」 - ?? 「但是,您必須爲該方法拋出RemoteException」 - 爲什麼? – ichaki5748 2011-12-30 09:49:35

0

我也觸發使用問題的Arquillian-GlassFish的管理-3.1,並送入GlassFish的EJB的領導者。

但是,我需要用其他方法來確認問題,以判斷是否由glassfish或arquillian引起。

+0

現在,我已經在arquillian jira中提交了一個bug(https://issues.jboss.org/browse/ARQ-1346)並等待團隊的評估。 – 2013-03-08 06:29:19