-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 9 posts ] 
Author Message
 Post subject: Getting NPE between openSession() and getCurrentSession()
PostPosted: Wed Mar 29, 2006 4:48 pm 
Newbie

Joined: Wed Mar 29, 2006 4:35 pm
Posts: 2
Hi,
I am a newbie to Hibernate, I have a ServletFilter to do the Transactions, but whenever i call openSession followed by sf.getCurrentSession() i get the NullPointerException.

public class ServletManagerFilter implements Filter{
private SessionFactory sf;
...

public void init(FilterConfig arg0) throws ServletException {
log.debug("Initializing filter, obtaining Hibernate SessionFactory from HibernateUtil");
sf = HibernateUtil.getSessionFactory();
}


/* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
boolean debug = log.isDebugEnabled() ;
boolean error = log.isErrorEnabled();
//Fetch a Hibernate Session from the HttpSession. This will be useful for session-per-conversation (for multiple requests within a Http session)
HttpSession httpSession =
((HttpServletRequest) request).getSession();
Session hibernateSession =
(Session) httpSession.getAttribute(HIBERNATE_SESSION_KEY);
try
{
// See if the session is null or not if it is null then open a new session.
if (hibernateSession==null)
sf.openSession() ;
// start the new transaction
if (debug)
log.debug("Starting a database transaction");
sf.getCurrentSession() .beginTransaction();
...
--> THIS throws the Null Pointer Exception
}
}


public class HibernateUtil {

/**
* Returns the global SessionFactory.
*
* @return SessionFactory
*/
public static SessionFactory getSessionFactory() {
SessionFactory sf = null;
try {
sf = (SessionFactory) new InitialContext().lookup(CTISConstants.HIBERNATE_SESSION_FACTORY_JNDI);
} catch (NamingException ex) {
throw new RuntimeException(ex);
}
if (sf == null)
throw new IllegalStateException("SessionFactory not available.");
return sf;
}


}

Anybody have any ideas why i might be geeting this?

Thanks in Advance


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 30, 2006 12:12 am 
Expert
Expert

Joined: Thu Dec 23, 2004 9:08 pm
Posts: 2008
No ideas yet. Post the full exception trace and we'll see where go from there. Please use the code tag when posting it, thanks.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Mar 31, 2006 1:25 am 
Newbie

Joined: Wed Mar 29, 2006 4:35 pm
Posts: 2
Thanks for the reply, I am posting all my code plus my exception stack trace for more information, Just an FYI ... I don't have any hibernate.cfg.xml in classpath( Since i am using JBOSS JMX service, i guess i don't need it )


Code:

import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.hibernate.SessionFactory;

import cdot.ctis.CTISConstants;

public class HibernateUtil {
   
   /**
     * Returns the global SessionFactory.
     *
     * @return SessionFactory
     */
    public static SessionFactory getSessionFactory() {
       
        SessionFactory sf = null;
            try {
                sf = (SessionFactory) new InitialContext().lookup(CTISConstants.HIBERNATE_SESSION_FACTORY_JNDI);
               
            } catch (NamingException ex) {
                throw new RuntimeException(ex);
            }
        if (sf == null)
            throw new IllegalStateException("SessionFactory not available.");
        return sf;
    }
   

}


// Servlet

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import cdot.ctis.data.EventDAO;
import cdot.ctis.data.EventDAOFactory;

public class ServletManager extends HttpServlet {

    private  Log log = LogFactory.getLog(ServletManager.class);
   private EventDAOFactory factory = new EventDAOFactory();

    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response)
            throws ServletException, IOException {
       try
       {
          
          EventDAO dao = factory.getEventDAO() ;
          Object obj = dao.findById( new Long(1L),true);
          
          //Event theEvent = new Event();
          //theEvent.setId(new Long(1));
            //theEvent.setTitle("pk");
            //theEvent.setDate(new Date());
          //dao.makePersistent(theEvent);
          if (log.isDebugEnabled() )
             log.debug( "Completed .."+obj);
          }catch(Exception e){
          if (log.isErrorEnabled())
             log.error("Failed to get the Hibernate Session ", e);
          throw new ServletException(e.getMessage(),e);
       }
       
    }
}

// ServletManagerFilter
/*
* Current Revision $Revision$
* Latest Change by $Author$ on $Date$
*/
package cdot.ctis.controller;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import cdot.ctis.util.HibernateUtil;

public class ServletManagerFilter implements Filter {
   private static Log log = LogFactory.getLog(ServletManagerFilter.class);
   public static final String HIBERNATE_SESSION_KEY    = "hibernate_session";
    public static final String END_OF_CONVERSATION_FLAG = "end_of_conversation";
    private SessionFactory sf;

   /* (non-Javadoc)
    * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
    */
   public void init(FilterConfig arg0) throws ServletException {
      log.debug("Initializing filter, obtaining Hibernate SessionFactory from HibernateUtil");
      
   }

   /* (non-Javadoc)
    * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
    */
   public void doFilter(ServletRequest request,
            ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
      boolean debug = log.isDebugEnabled() ;
      boolean error = log.isErrorEnabled();
        //Fetch a Hibernate Session from the HttpSession. This will be useful for session-per-conversation (for multiple requests within a Http session)
      HttpSession httpSession =
                ((HttpServletRequest) request).getSession();
        Session hibernateSession =
                (Session) httpSession.getAttribute(HIBERNATE_SESSION_KEY);
        try
        {
        sf = HibernateUtil.getSessionFactory();
        // See if the session is null or not if it is null then open a new session.
        if (hibernateSession==null)
           sf.openSession() ;
        // start the new transaction
        if (debug)
           log.debug("Starting a database transaction");
        sf.getCurrentSession() .beginTransaction();
        // Complete the Servlet actions if any
        chain.doFilter(request, response);
       
        // flush the session
        if (debug)
           log.debug("Flushing Session");
        sf.getCurrentSession().flush();
        // Commit the transaction to the DB
        if (debug)
           log.debug("Committing the database transaction");
        sf.getCurrentSession().getTransaction().commit();
        // Close the Session
        if (debug)
           log.debug("Closing and unbinding Session from thread");
        sf.getCurrentSession().close(); // Unbind is automatic here
        if (debug)
            log.debug("<<< End of conversation");
        }
        catch (Throwable ex) {
            // Rollback only
            try {
                if (sf.getCurrentSession().getTransaction().isActive()) {
                   if (debug)
                      log.debug("Trying to rollback database transaction after exception");
                    sf.getCurrentSession().getTransaction().rollback();
                }
            } catch (Throwable rbEx) {
               if (error)
                  log.error("Could not rollback transaction after exception!", rbEx);
            } finally {
               if (error)
                  log.error("Cleanup after exception!");

                // Cleanup
               if (debug)
                  log.debug("Closing and unbinding Session from thread");
                sf.getCurrentSession().close(); // Unbind is automatic here

                if (debug)
                   log.debug("Removing Session from HttpSession");
                httpSession.setAttribute(HIBERNATE_SESSION_KEY, null);
            }
            throw new ServletException(ex);
        }

   }

   public void destroy() {
      // TODO Auto-generated method stub
      
   }
   
}

// Exception stack trace

22:20:25,059 ERROR [ServletManagerFilter] Could not rollback transaction after exception!
java.lang.NullPointerException
        at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:509)
        at cdot.ctis.controller.ServletManagerFilter.doFilter(ServletManagerFilter.java:126)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
        at java.lang.Thread.run(Thread.java:595)
22:20:25,059 ERROR [ServletManagerFilter] Cleanup after exception!
22:20:25,059 ERROR [[ServletManager]] Servlet.service() for servlet ServletManager threw exception
java.lang.NullPointerException
        at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:509)
        at cdot.ctis.controller.ServletManagerFilter.doFilter(ServletManagerFilter.java:141)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
        at java.lang.Thread.run(Thread.java:595)


   


Top
 Profile  
 
 Post subject:
PostPosted: Fri Mar 31, 2006 1:43 am 
Expert
Expert

Joined: Thu Dec 23, 2004 9:08 pm
Posts: 2008
What version of Hibernate are you using? 3.0.5 has a potential NPE, but it's not on line 509, and 3.1.1 doesn't have any potential NPE. I'm guessing you're using 3.0.x.

Upgrading to 3.1.x will almost certainly make this go away, but in the mean time, the potential exception is caused by having a null settings field in the factory. Check how you're creating the factory, and ensure that you're giving it enough info to get all its necessary bits. I guess that'll be in the initialize/configure lifecycle method in the class referred to by CTISConstants.HIBERNATE_SESSION_FACTORY_JNDI? I'm not au fait with JBoss.


Top
 Profile  
 
 Post subject: Re: Getting NPE between openSession() and getCurrentSession(
PostPosted: Fri Mar 31, 2006 2:13 am 
Beginner
Beginner

Joined: Mon Dec 05, 2005 4:15 am
Posts: 36
invizible wrote:

/* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
boolean debug = log.isDebugEnabled() ;
boolean error = log.isErrorEnabled();
//Fetch a Hibernate Session from the HttpSession. This will be useful for session-per-conversation (for multiple requests within a Http session)
HttpSession httpSession =
((HttpServletRequest) request).getSession();
Session hibernateSession =
(Session) httpSession.getAttribute(HIBERNATE_SESSION_KEY);
try
{
// See if the session is null or not if it is null then open a new session.
if (hibernateSession==null)
sf.openSession() ;
// start the new transaction
if (debug)
log.debug("Starting a database transaction");
sf.getCurrentSession() .beginTransaction();
...
--> THIS throws the Null Pointer Exception
}
}

}

Anybody have any ideas why i might be geeting this?

Thanks in Advance


getCurrentSession() works only in managed (JEE) environment with JTA. If you are using pure Tomcat, you must change your code like:
Code:
        Session ses;
        //.....
        if (hibernateSession==null)
           ses = sf.openSession() ;
        // start the new transaction
        if (debug)
           log.debug("Starting a database transaction");
       [b] ses.beginTransaction();



Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 21, 2006 12:27 am 
Newbie

Joined: Thu Dec 01, 2005 11:27 pm
Posts: 4
I am having a similiar problem but instead of NullPointerException i get the following:

org.hibernate.HibernateException: Unable to locate current JTA transaction

However I am using Jboss 4.0.3SP1 which I believe to be a managed environment?

I read Hibernate Refernce manual

Quote:
If you want to use a transaction-bound Session, that is, the getCurrentSession() functionality for easy context
propagation, you will have to use the JTA UserTransaction API directly:


but I am not entirely sure what that means. I am attempting to implement the session-per-conversation but any use of sf.getCurrentSession() is causing a that above error.

Here is my HibernateExtendedFilter iam tyring to use

Code:
   public void doFilter(ServletRequest request,
                         ServletResponse response,
                         FilterChain chain)
            throws IOException, ServletException {


        // Try to get a Hibernate Session from the HttpSession
        HttpSession httpSession = ((HttpServletRequest) request).getSession();
        Session hibernateSession = null;
         
       
       
        if(httpSession != null ){
           hibernateSession = (Session) httpSession.getAttribute(HIBERNATE_SESSION_KEY);
           
        }
       

        try {

            if (hibernateSession != null) {
                log.error("< Continuing conversation");
                //hibernateSession.beginTransaction();
                ExtendedThreadLocalSessionContext.bind(hibernateSession);
            } else {
                log.error(">>> New conversation");
            }

            sf.getCurrentSession().beginTransaction();
           
           // Do the work...
            chain.doFilter(request, response);

            // End or continue the long-running conversation?
            if (request.getAttribute(LONG_CONVERSATION_FLAG) == null) {
               
               //Session-per-request pattern
               
               //log.error("Long_Conversation Starting a database transaction");
               //sf.getCurrentSession().beginTransaction();
               
                log.error("Flushing Session");
                sf.getCurrentSession().flush();             
               
                log.error("Committing the database transaction");
                sf.getCurrentSession().getTransaction().commit();
                                 
                log.error("Closing and unbinding Session from thread");
                sf.getCurrentSession().close(); // Unbind is automatic here

                log.error("Removing Session from HttpSession");
                httpSession.setAttribute(HIBERNATE_SESSION_KEY, null);

                log.error("<<< End of conversation");

            } else {
               //Long Coversation Pattern
                log.error("Committing database transaction");
                sf.getCurrentSession().getTransaction().commit();

                log.error("Unbinding Session from thread");
                hibernateSession = ExtendedThreadLocalSessionContext.unbind(sf);

                log.error("Storing Session in the HttpSession");
                httpSession.setAttribute(HIBERNATE_SESSION_KEY, hibernateSession);

                log.error("> Returning to user in conversation");
            }

        } catch (StaleObjectStateException staleEx) {
            log.error("This interceptor does not implement optimistic concurrency control!");
            log.error("Your application will not work until you add compensation actions!");
            // Rollback, close everything, possibly compensate for any permanent changes
            // during the conversation, and finally restart business conversation. Maybe
            // give the user of the application a chance to merge some of his work with
            // fresh data... what you do here depends on your applications design.
            throw staleEx;
        } catch (Throwable ex) {
            // Rollback only
            try {
                if (sf.getCurrentSession().getTransaction().isActive()) {
                    log.debug("Trying to rollback database transaction after exception");
                    sf.getCurrentSession().getTransaction().rollback();
                }
            } catch (Throwable rbEx) {
                log.error("Could not rollback transaction after exception!", rbEx);
            } finally {
                log.error("Cleanup after exception!");

                // Cleanup
                log.debug("Closing and unbinding Session from thread");
                sf.getCurrentSession().close(); // Unbind is automatic here

                log.debug("Removing Session from HttpSession");
                httpSession.setAttribute(HIBERNATE_SESSION_KEY, null);

            }

            // Let others handle it... maybe another interceptor for exceptions?
            throw new ServletException(ex);
        }

    }


If anyone could shine a light on this for me it would be greatly appreciated.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 21, 2006 12:48 am 
Expert
Expert

Joined: Thu Dec 23, 2004 9:08 pm
Posts: 2008
You'll need to configure your transaction manager in your hibernate.cfg.xml or hibernate.properties file. If you're using hibernate.properties, then you probably want lines along these lines:
Code:
hibernate.transaction.factory_class =     org.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class =     org.hibernate.transaction.JBossTransactionManagerLookup


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 21, 2006 12:54 am 
Newbie

Joined: Thu Dec 01, 2005 11:27 pm
Posts: 4
This appears to be done in JBoss here is the tail of the output from setting up the session factory shows that it is using the

Transaction strategy: org.hibernate.transaction.JTATransactionFactory
TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup

Code:
14:48:50,613 INFO  [NamingHelper] JNDI InitialContext properties:{}
14:48:50,613 INFO  [DatasourceConnectionProvider] Using datasource: java:/LawcodesUserDS
14:48:50,613 INFO  [SettingsFactory] RDBMS: PostgreSQL, version: 7.4.8
14:48:50,613 INFO  [SettingsFactory] JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 7.4.7 JDBC3 with SSL (build 215)
14:48:50,614 INFO  [Dialect] Using dialect: org.hibernate.dialect.PostgreSQLDialect
14:48:50,614 INFO  [TransactionFactoryFactory] Transaction strategy: org.hibernate.transaction.JTATransactionFactory
14:48:50,614 INFO  [NamingHelper] JNDI InitialContext properties:{}
14:48:50,614 INFO  [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
14:48:50,615 INFO  [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
14:48:50,615 INFO  [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
14:48:50,615 INFO  [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
14:48:50,615 INFO  [SettingsFactory] Automatic flush during beforeCompletion(): enabled
14:48:50,615 INFO  [SettingsFactory] Automatic session close at end of transaction: enabled
14:48:50,615 INFO  [SettingsFactory] JDBC batch size: 15
14:48:50,615 INFO  [SettingsFactory] JDBC batch updates for versioned data: disabled
14:48:50,615 INFO  [SettingsFactory] Scrollable result sets: enabled
14:48:50,615 INFO  [SettingsFactory] JDBC3 getGeneratedKeys(): disabled
14:48:50,615 INFO  [SettingsFactory] Connection release mode: after_statement
14:48:50,615 INFO  [SettingsFactory] Default batch fetch size: 1
14:48:50,615 INFO  [SettingsFactory] Generate SQL with comments: disabled
14:48:50,615 INFO  [SettingsFactory] Order SQL updates by primary key: disabled
14:48:50,615 INFO  [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
14:48:50,615 INFO  [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
14:48:50,615 INFO  [SettingsFactory] Query language substitutions: {}
14:48:50,616 INFO  [SettingsFactory] Second-level cache: enabled
14:48:50,616 INFO  [SettingsFactory] Query cache: disabled
14:48:50,616 INFO  [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
14:48:50,616 INFO  [SettingsFactory] Optimize cache for minimal puts: disabled
14:48:50,616 INFO  [SettingsFactory] Structured second-level cache entries: disabled
14:48:50,616 INFO  [SettingsFactory] Echoing all SQL to stdout
14:48:50,616 INFO  [SettingsFactory] Statistics: disabled
14:48:50,616 INFO  [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
14:48:50,616 INFO  [SettingsFactory] Default entity-mode: pojo
14:48:50,647 INFO  [SessionFactoryImpl] building session factory
14:48:52,322 INFO  [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
14:48:52,323 INFO  [NamingHelper] JNDI InitialContext properties:{}
14:48:52,334 INFO  [Hibernate] SessionFactory successfully built and bound into JNDI [java:/hibernate/LawcodesUser]


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 21, 2006 1:12 am 
Expert
Expert

Joined: Thu Dec 23, 2004 9:08 pm
Posts: 2008
That looks good. The next most likely explanation is that JTA isn't being found, though if that's the case I'd expect a startup error. Perhaps it's being swallowed by a bad catch statement. Unfortunately I don't know anything about JTA configuration. I presume there's a jar that has to be on your classpath, and a line in your JBoss configuraiton files to initialize it.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 9 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.