[jboss-user] [JBoss Seam] - Seam + Informix - java.lang.IllegalStateException

dmg do-not-reply at jboss.com
Thu Jan 31 10:46:21 EST 2008


I have written an application using Seam & MySQL which is working. I am now trying to connect the application to Informix and I am getting the following exceptions:


  | 10:42:15,676 INFO  [AuthenticatorAction] authenticating admin
  | 10:42:16,841 INFO  [STDOUT] Hibernate:
  |     select
  |         user0_.id as id6_,
  |         user0_.username as username6_,
  |         user0_.password as password6_,
  |         user0_.salt as salt6_,
  |         user0_.email as email6_,
  |         user0_.role as role6_
  |     from
  |         uv_user user0_
  |     where
  |         user0_.username=?
  | 10:42:16,912 INFO  [AuthenticatorAction] authenticating admin succeeded
  | 10:42:17,268 ERROR [SeamPhaseListener] uncaught exception
  | java.lang.IllegalStateException: Could not commit transaction
  |         at org.jboss.seam.jsf.SeamPhaseListener.commitOrRollback(SeamPhaseListener.java:602)
  |         at org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsAfterPhase(SeamPhaseListener.java:330)
  |         at org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:231)
  |         at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:182)
  |         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:280)
  |         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
  |         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
  | .....
  | Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
  |         at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
  |         at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
  |         at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
  |         at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
  |         at org.jboss.seam.transaction.UTTransaction.commit(UTTransaction.java:52)
  |         at org.jboss.seam.jsf.SeamPhaseListener.commitOrRollback(SeamPhaseListener.java:592)
  | 

These exceptions are raised after a user successfully authenticates using:


  | @Stateless
  | @Name("authenticator")
  | public class AuthenticatorAction implements Authenticator
  | {
  | 	@PersistenceContext
  | 	private EntityManager em;
  | 
  | 	@In
  | 	Identity identity;
  | 
  | 	@Out(required = false, scope = SESSION)
  | 	private User user;
  | 
  | 	@Logger
  | 	Log log;
  | 
  | 	public boolean authenticate()
  | 	{
  | 		log.info("authenticating #0", identity.getUsername());
  | 
  | 		try
  | 		{
  | 			user = (User) em.createQuery("from User where username = :username")
  | 				.setParameter("username", identity.getUsername())
  | 				.getSingleResult();
  | 
  | 			if (!user.getPassword().equals(Passwords.passwordDigest(identity.getPassword(), user.getSalt())))
  | 				return false;
  | 				
  | 			if (user.getRole() != null)
  | 			{
  | 				identity.addRole(user.getRole());
  | 			}
  | 
  | 		  log.info("authenticating #0 succeeded", identity.getUsername());
  | 			return true;
  | 		}
  | 		catch (NoResultException e)
  | 		{
  | 			log.info("exception while authenticating #0", e, identity.getUsername());
  | 			return false;
  | 		}
  | 	}
  | }
  | 


My Informix datasource file is:


  | <datasources>
  | 	<local-tx-datasource>
  | 		<jndi-name>informixDatasource</jndi-name>
  | 
  | 		<connection-url>jdbc:informix-sqli://hostname:1526/database:INFORMIXSERVER=iserver</connection-url>
  | 		<driver-class>com.informix.jdbc.IfxDriver</driver-class>
  | 		<user-name>username</user-name>
  | 		<password>password</password>
  | 
  | 		<exception-sorter-class-name>
  | 			org.jboss.resource.adapter.jdbc.vendor.InformixExceptionSorter
  | 		</exception-sorter-class-name>
  | 		<metadata>
  | 			<type-mapping>InformixDB</type-mapping>
  | 		</metadata>
  | 	</local-tx-datasource>
  | </datasources>
  | 

and my persistence file is:


  | 	<persistence-unit name="uvoltds">
  | 		<provider>org.hibernate.ejb.HibernatePersistence</provider>
  | 		<jta-data-source>java:/informixDatasource</jta-data-source>
  | 		<properties>
  | 			<property name="hibernate.dialect" value="org.hibernate.dialect.InformixDialect"/>
  | 
  | 			<property name="hibernate.hbm2ddl.auto" value="validate" />
  | 			<property name="hibernate.show_sql" value="true" />
  | 			<property name="hibernate.format_sql" value="true" />
  | 			<property name="jboss.entity.manager.factory.jndi.name"
  | 				value="java:/uvoltdsEntityManagerFactory" />
  | 		</properties>
  | 	</persistence-unit>
  | 

I've tried unsuccessfully to find a clue via google. Can anyone point out the obvious or push me in the right direction?

Thanks,
Dan

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4125200#4125200

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125200



More information about the jboss-user mailing list