2013-06-05 3 views
0

최근에 내 데이터베이스가 변경되었으므로 일부 코드가 변경되어 코드와 엔티티가 변경됩니다. 이전 데이터베이스는 내역 레코드에 존재합니다.javax.ejb.TransactionRolledbackLocalException : 클라이언트의 트랜잭션이 중단되었습니다.

응용 프로그램이 새 데이터베이스로 잘 작동하지만 응용 프로그램이라는 작성 메소드가있을 때마다 예외가 발생했습니다.

내가 이전 데이터베이스와 잘 실행 내에서 예전의 코드를 실행하면, 나는 내가 새 데이터베이스를 구성 할 때 놓친 거지 무슨 혼동입니다 ....

WARNING: EJB5184:A system exception occurred during an invocation on EJB CPEHardwareModelFacade, method: public void kics.green.acs.ejb.facade.CPEHardwareModelFacade.create(kics.green.acs.ejb.entity.CPEHardwareModel) 
WARNING: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted 
    at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:4722) 
    at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:4601) 
    at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1914) 
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212) 
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:89) 
    at com.sun.proxy.$Proxy443.create(Unknown Source) 
    at kics.green.acs.ejb.businessdelegate.ACSMessageBean.onMessage(ACSMessageBean.java:138) 
    at sun.reflect.GeneratedMethodAccessor459.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052) 
    at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124) 
    at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:4180) 
    at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5368) 
    at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348) 
    at com.sun.ejb.containers.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1099) 
    at com.sun.ejb.containers.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:81) 
    at com.sun.enterprise.connectors.inbound.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:171) 
    at com.sun.proxy.$Proxy449.onMessage(Unknown Source) 
    at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:260) 
    at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:114) 
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497) 
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540) 


Line with error 
GreenACSEJBLookUp.lookupCPEHardwareModelFacadeLocal().create(cpeHardwareModel); 

답변

0

당신이하려고하면 transactionRolledbackLocalException가 발생 트랜잭션이 이미 롤백으로 표시된 후에 다른 엔티티 (예 : @Local 인터페이스를 통해 다른 EJB)로 이동하십시오. 일반적으로 처리되지 않은 예외가 어딘가에 던져지는 경우입니다. 예외의 실제 원인은 때로는 삼켜 버리고 판단하기 어려울 수 있습니다.

제 조언은 디버거를 사용하여 단계별로 수행하는 것입니다 ...

관련 문제