我有一个在glassfish中使用jee6的系统。我在PC和Raspberry pi 3 B +中都运行它。在PC中,glassfish v4.1和v5.1都可以正常运行。在Pi 3中,v4.1可以正常运行,但v5.1遇到难以解决的问题。 stacktrace很长,我只在下面提取其中的一部分。
2019-02-06 13:10:43.793|WARNING|javax.enterprise.ejb.container|A system exception occurred during an invocation on EJB UtilBean, method: public java.lang.String mySystem.util.UtilBean.getProperty(java.lang.String)
2019-02-06 13:10:43.795|WARNING|javax.enterprise.ejb.container|javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
at com.sun.ejb.containers.EJBContainerTransactionManager.useClientTx(EJBContainerTransactionManager.java:337)
at com.sun.ejb.containers.EJBContainerTransactionManager.preInvokeTx(EJBContainerTransactionManager.java:231)
at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:4534)
at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1996)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:180)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:55)
at com.sun.proxy.$Proxy525.getProperty(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:199)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:110)
at com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:196)
at mySystem.util.__UtilRemote_Remote_DynamicStub.getProperty(mySystem/util/__UtilRemote_Remote_DynamicStub.java)
at mySystem.util._UtilRemote_Wrapper.getProperty(mySystem/util/_UtilRemote_Wrapper.java)
at mySystem.data.CaptureTrades.capture(CaptureTrades.java:328)
at mySystem.data.CaptureTrades.capture(CaptureTrades.java:177)
at mySystem.data.CaptureTrades.run(CaptureTrades.java:144)
.........
2019-02-06 13:10:43.804|WARNING|javax.enterprise.ejb.container|A system exception occurred during an invocation on EJB CaptureTrades, method: public boolean mySystem.data.CaptureTrades.run(java.util.List)
2019-02-06 13:10:43.806|WARNING|javax.enterprise.ejb.container|javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean
at com.sun.ejb.containers.EJBContainerTransactionManager.checkExceptionClientTx(EJBContainerTransactionManager.java:642)
at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:487)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4576)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2084)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2054)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:188)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:55)
at com.sun.proxy.$Proxy474.run(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:199)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:110)
at com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:196)
at mySystem.data.__CaptureTradesRemote_Remote_DynamicStub.run(mySystem/data/__CaptureTradesRemote_Remote_DynamicStub.java)
at mySystem.data._CaptureTradesRemote_Wrapper.run(mySystem/data/_CaptureTradesRemote_Wrapper.java)
at mySystem.util.JobScheduleBean.activateService(JobScheduleBean.java:199)
at mySystem.util.JobScheduleBean.runTimer(JobScheduleBean.java:129)
...........
Caused by: javax.ejb.EJBTransactionRolledbackException
at mySystem.util._UtilRemote_Wrapper.getProperty(mySystem/util/_UtilRemote_Wrapper.java)
at mySystem.data.CaptureTrades.capture(CaptureTrades.java:328)
at mySystem.data.CaptureTrades.capture(CaptureTrades.java:177)
at mySystem.data.CaptureTrades.run(CaptureTrades.java:144)
...........
Caused by: javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is:
org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:203)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.wrapException(Util.java:616)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:208)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:110)
at com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:196)
at mySystem.util.__UtilRemote_Remote_DynamicStub.getProperty(mySystem/util/__UtilRemote_Remote_DynamicStub.java)
... 83 more
Caused by: org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe
at org.glassfish.enterprise.iiop.impl.POAProtocolMgr.mapException(POAProtocolMgr.java:332)
at com.sun.ejb.containers.BaseContainer.mapRemoteException(BaseContainer.java:2311)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2122)
Caused by: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
at com.sun.ejb.containers.EJBContainerTransactionManager.useClientTx(EJBContainerTransactionManager.java:337)
at com.sun.ejb.containers.EJBContainerTransactionManager.preInvokeTx(EJBContainerTransactionManager.java:231)
at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:4534)
at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1996)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:180)
... 93 more
运行几次后,这是我的观察结果:
以下是示例代码:
@Stateless(mappedName = Constants.CaptureTrades)
public class CaptureTrades implements CaptureTradesRemote {
@EJB
UtilRemote util;
public boolean capture(java.sql.Date tDate) {
.....
String source = util.getProperty("keyword");
.....
}
}
@Singleton(mappedName = Constants.UtilBean)
public class UtilBean implements UtilRemote {
private static Properties props;
.....
@Override
public String getProperty(String key) {
return props.getProperty(key);
}
}
@Remote
public abstract interface UtilRemote {
public abstract String getProperty(String keyString);
}
如果有任何帮助或提示,或者对我应该解决的方向提出任何建议,我将不胜感激。
编辑:我在这篇文章中尝试了解决方案,但对我的情况没有帮助。 here