2013-06-05 2 views
0

Я недавно изменил свою базу данных, произошли некоторые изменения в базе данных, поэтому я изменил свой код и сущности соответственно, для базы данных существует старая база данных.javax.ejb.TransactionRolledbackLocalException: транзакция клиента отменена

Приложение работает отлично с новой базой данных, но всякий раз, когда есть метод create, называемый приложением, это исключение.

Когда я запускаю мой старый код, который прекрасно работать со старой базой данных, я путаю, что я не хватает, когда я настроить его для новой базы данных ....

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 выбрасывается при попытке перейдите к другому объекту (например, другому EJB через интерфейс @Local) после того, как транзакция уже была отмечена для отката. Как правило, случайное исключение было выбрано где-то - реальную причину исключения иногда можно проглотить и определить трудно.

Мой совет состоит в том, чтобы пройти через отладчик ...