Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > EJB 3 Ошибко


Автор: ZeusX 14.1.2008, 12:55
Здарова народ,

у мя возникла такая проблема, при повторном обращении к EJB вылетает воть энто

Код

EJB5018: An exception was thrown during an ejb invocation on [BankAccountBean]
javax.ejb.TransactionRolledbackLocalException: Client transaction aborted
        at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:3394)
        at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:3274)
        at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1244)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:195)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:127)
        at $Proxy74.getAccountsListByUserID(Unknown Source)
        at GetAccountsList.processRequest(GetAccountsList.java:32)
        at GetAccountsList.doGet(GetAccountsList.java:65)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
StandardWrapperValve[GetAccountsList]: PWC1406: Servlet.service() for servlet GetAccountsList threw exception
javax.ejb.EJBTransactionRolledbackException
        at com.sun.ejb.containers.BaseContainer.mapBusinessInterfaceException(BaseContainer.java:1482)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1396)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:205)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:127)
        at $Proxy74.getAccountsListByUserID(Unknown Source)
        at GetAccountsList.processRequest(GetAccountsList.java:32)
        at GetAccountsList.doGet(GetAccountsList.java:65)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: javax.ejb.TransactionRolledbackLocalException: Client transaction aborted
        at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:3394)
        at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:3274)
        at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1244)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:195)
        ... 32 more


GetAccountsList.java:32
Код

. . .
List<BankAccount> accounts = accountBean.getAccountsListByUserID( clientID );
. . .


Первый раз запрос проходит нормально... а потом вылетает.. пока не смениш сессию Если кто сталкивался с данной траблой отпишитесь...

Автор: diablero 14.1.2008, 16:19
Покажи кусок кода где обрабатываеться транзакция.

Автор: ZeusX 15.1.2008, 13:59
to diablero, 

воть

Код

public List getAccountsListByUserID( int clientID ) {
        ArrayList<BankAccount> accounts = new ArrayList<BankAccount>();
        BankAccount account = null;
        try {    
            connection = pool.getConnection();
            sql = "SELECT DISTINCT S.Account AS account, F.Ccy AS code " +
                  "FROM AccountS AS S INNER JOIN FinInstr AS F ON S.ISO = F.FI_Code " +
                  "WHERE ( S.Client = ? ) AND ( S.Open_Close > 0 )";
            pstmt = connection.prepareStatement( sql );
            pstmt.setInt( 1, clientID );
            rs = pstmt.executeQuery();
            while( rs.next() ) {
                account = new BankAccount();
                account.setNumber( rs.getString("account") );
                account.setCode( rs.getString("code") );
                accounts.add( account );
            }
            sql = "SELECT DISTINCT V.Account AS account, F.Ccy AS code " +
                  "FROM AccountV AS V INNER JOIN FinInstr AS F ON V.ISO = F.FI_Code " +
                  "WHERE ( V.Client = ? ) AND ( V.Open_Close > 0 )";
            pstmt = connection.prepareStatement( sql );
            pstmt.setInt( 1, clientID );
            rs = pstmt.executeQuery();
            while( rs.next() ) {
                account = new BankAccount();
                account.setNumber( rs.getString("account") );
                account.setCode( rs.getString("code") );
                accounts.add( account );
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                pstmt.close();
                connection.close();
            } catch(SQLException ex) {
                ex.printStackTrace();
            }
        }
        return accounts;
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)