[JBoss Seam] - SMPC and could not enlist in transaction exception
by asookazian
I'm not sure exactly what the root cause of this is and I'll try my best to explain this in detail. I had added three SMPC's in my components.xml as follows (and everything as far as transaction/persistence was working fine):
<persistence:managed-persistence-context name="CoxIMEntityManager"
| auto-create="true"
| persistence-unit-jndi-name="java:/securityAuditCoxIMEntityManagerFactory"/>
|
| <persistence:managed-persistence-context name="CoxDSSEntityManager"
| auto-create="true"
| persistence-unit-jndi-name="java:/securityAuditCoxDSSEntityManagerFactory"/>
|
| <persistence:managed-persistence-context name="BoIcomsEntityManager"
| auto-create="true"
| persistence-unit-jndi-name="java:/securityAuditBoIcomsEntityManagerFactory"/>
I'm not even sure it's necessary to do this (have three SMPC's, perhaps only one would suffice for this app as all db's are on the same db server). That's my first question. What is the recommended # of SMPC's per db/server combo? 1:1?? 2nd question is why exactly am I getting the exception below when I make the components.xml change as described below? If it depends on how many and which SMPC's you are injecting per Action SFSB/SLSB then plz let me know and I will post the add'l code.
Note that all these persistence units point to datasources that are db's on the same server.
persistence.xml:
| <persistence-unit name="boIcomsSecurityAudit">
| <provider>org.hibernate.ejb.HibernatePersistence</provider>
| <jta-data-source>java:/boIcomsSecurityAuditDatasource</jta-data-source>
| <properties>
| <property name="jboss.entity.manager.factory.jndi.name" value="java:/securityAuditBoIcomsEntityManagerFactory"/>
| </properties>
| </persistence-unit>
|
|
| <persistence-unit name="coxDSSDatasource">
| <provider>org.hibernate.ejb.HibernatePersistence</provider>
| <jta-data-source>java:/coxDSSDatasource</jta-data-source>
| <properties>
| <property name="jboss.entity.manager.factory.jndi.name" value="java:/securityAuditCoxDSSEntityManagerFactory"/>
| </properties>
| </persistence-unit>
|
| <persistence-unit name="coxIMDatasource">
| <provider>org.hibernate.ejb.HibernatePersistence</provider>
| <jta-data-source>java:/coxIMDatasource</jta-data-source>
| <properties>
| <property name="jboss.entity.manager.factory.jndi.name" value="java:/securityAuditCoxIMEntityManagerFactory"/>
| </properties>
| </persistence-unit>
*-ds.xml:
| <local-tx-datasource>
| <jndi-name>boIcomsSecurityAuditDatasource</jndi-name>
| <connection-url>jdbc:sqlserver://CORG0DV01:1433;databaseName=boIcomsSecurityAudit</connection-url>
| <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
| <user-name>_AppUser_JavaTestAcct</user-name>
| <password>JavaTestAcct</password>
| </local-tx-datasource>
|
|
| <local-tx-datasource>
| <jndi-name>coxDSSDatasource</jndi-name>
| <connection-url>jdbc:sqlserver://CORG0DV01:1433;databaseName=coxDSS</connection-url>
| <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
| <user-name>_AppUser_JavaTestAcct</user-name>
| <password>JavaTestAcct</password>
| </local-tx-datasource>
|
| <local-tx-datasource>
| <jndi-name>coxIMDatasource</jndi-name>
| <connection-url>jdbc:sqlserver://CORG0DV01:1433;databaseName=coxIM</connection-url>
| <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
| <user-name>_AppUser_JavaTestAcct</user-name>
| <password>JavaTestAcct</password>
| </local-tx-datasource>
I noticed that I had one of the SMPC's coded incorrectly in the components.xml.
This:
<persistence:managed-persistence-context name="BoIcomsEntityManager"
| auto-create="true"
| persistence-unit-jndi-name="java:/securityAuditBoIcomsEntityManagerFactory"/>
*was* this:
<persistence:managed-persistence-context name="BoIcomsEntityManager"
| auto-create="true"
| persistence-unit-jndi-name="java:/securityAuditCoxIMEntityManagerFactory"/>
I wasn't getting the exception below with the latter config of BoIcomsEntityManager above.
stack trace:
javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)
| at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
| at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
| at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:204)
| at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:100)
| at $Proxy112.findAuditList(Unknown Source)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:76)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.ejb.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:41)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54)
| at org.javassist.tmp.java.lang.Object_$$_javassist_2.findAuditList(Object_$$_javassist_2.java)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
| at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
| at org.jboss.seam.Component.callComponentMethod(Component.java:2074)
| at org.jboss.seam.Component.getInstanceFromFactory(Component.java:1918)
| at org.jboss.seam.Component.getInstance(Component.java:1855)
| at org.jboss.seam.Component.getInstance(Component.java:1832)
| at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
| at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
| at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166)
| at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53)
| at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
| at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
| at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
| at org.jboss.el.parser.AstNotEqual.getValue(AstNotEqual.java:21)
| at org.jboss.el.parser.AstAnd.getValue(AstAnd.java:21)
| at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
| at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
| at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)
| at javax.faces.component.UIComponent.encodeAll(UIComponent.java:880)
| at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
| at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
| at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
| at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:199)
| at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:194)
| at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
| at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:271)
| at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:117)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
| at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:271)
| at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
| at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
| at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
| at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
| at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
| at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
| at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:118)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
| at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
| at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Unknown Source)
| Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)
| at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:73)
| at com.cox.beans.session.SecurityAuditAction.findAuditList(SecurityAuditAction.java:165)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
| at com.cox.beans.interceptor.ProfilingInterceptor.profile(ProfilingInterceptor.java:23)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
| at com.cox.beans.interceptor.LoggerInterceptor.profile(LoggerInterceptor.java:19)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
| at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:44)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.persistence.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:48)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:56)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.persistence.EntityManagerProxyInterceptor.aroundInvoke(EntityManagerProxyInterceptor.java:26)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.persistence.HibernateSessionProxyInterceptor.aroundInvoke(HibernateSessionProxyInterceptor.java:27)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
| at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
| at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
| ... 115 more
| Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
| at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
| at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
| at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
| at org.hibernate.loader.Loader.doQuery(Loader.java:673)
| at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
| at org.hibernate.loader.Loader.doList(Loader.java:2220)
| at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
| at org.hibernate.loader.Loader.list(Loader.java:2099)
| at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
| at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
| at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
| at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
| at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
| at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:64)
| ... 166 more
| Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: a2e052a:ca9:47a39190:4b status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: a2e052a:ca9:47a39190:4b status: ActionStatus.ABORT_ONLY >))
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
| at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:47)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
| ... 180 more
| Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: a2e052a:ca9:47a39190:4b status: ActionStatus.ABORT_ONLY >)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| ... 182 more
| Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: a2e052a:ca9:47a39190:4b status: ActionStatus.ABORT_ONLY >
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
| ... 186 more
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4125680#4125680
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125680
18 years, 2 months
[JBoss Seam] - Trinidad SelectManyShuttle with seam ?
by gjeudy
Hi,
I'm trying to use a selectManyShuttle trinidad component with seam. The problem I have is I can't get the selected entries from my backing bean because they were just populated on the client side. How should I go about this ?
I need a way to post the selected entries for seam to process and inject in my seam component.
Has anyone tried the same thing before?
Below is a small code snippet, I can display the component successfully and select items from it but I can't use the selected items anywhere.
<tr:selectManyShuttle id="existitemshuttle2"
| leadingHeader="Domain Objects Found" trailingHeader="Domain Objects Selected"
| value="#{refDomainSearch.selectedRefDomains}" size="#{refDomainSearch.pageSize}" rendered="#{not empty refDomainSearch.refDomains}">
| <s:selectItems var="refDomain" label="#{refDomain.domainName}" value="#{refDomainSearch.refDomains}">
| </s:selectItems>
| <s:convertEntity />
| </tr:selectManyShuttle>
Thanks,
-Guillaume
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4125677#4125677
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125677
18 years, 2 months
[Security & JAAS/JBoss] - Authentication on standalone client
by elgabo
Hi,
I have a little doubt about the ClientLoginModule. I am able to use this module on my standalone client, but it works in a different way than the expected. The AA is been done when a method from an EJB (properly configured) is called, but not when I call the LoginContext.login method.
Can some one give me an example of how to combine this ClientLoginModule with another LoginModule so the authorization is performed on the LoginContext.login method?
What I have up until now is the following:
--- on the standalone client ---
[other.conf]
| other {
| // jBoss LoginModule
| org.jboss.security.ClientLoginModule required
| ;
|
| // Put your login modules that need jBoss here
| };
|
[TestLogin.java]
| try {
| System.setProperty("java.security.auth.login.config", "other.conf");
|
| CallbackHandler handler=new UsernamePasswordHandler("user","1234567");
| LoginContext context=new LoginContext("srp-client", handler);
| context.login();
|
| InitialContext initCtx=new InitialContext();
| ImportadorEsAgilRemote bean=(ImportadorEsAgilRemote) initCtx.lookup("ImportadorEsAgilBean/remote");
| bean.importarPrecios("hola mundo");
| } catch (LoginException e) {
| // TODO Auto-generated catch block
| e.printStackTrace();
| } catch (NamingException e) {
| // TODO Auto-generated catch block
| e.printStackTrace();
| }
|
--- on my ejb project ---
[jboss.xml]
| <?xml version="1.0" encoding="UTF-8"?>
| <jboss>
| <security-domain>java:/jaas/other</security-domain>
| </jboss>
|
[login-config.xml]
| <application-policy name = "other">
| <authentication>
| <login-module code = "org.jboss.security.auth.spi.UsersRolesLoginModule"
| flag = "required" />
| </authentication>
| </application-policy>
|
Thanks for all your help
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4125669#4125669
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125669
18 years, 2 months
[JBoss Seam] - Re: NPE when logging inside a property getter
by cyberanto
hmm, I had transferred a couple of DAOs from another project which had been using commons logging.
After replacing all my commons logging imports with seam.log.Log, all hell is breaking loose ...
e.g.
==========================================
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.log.Log;
@Name("applicationCache")
@Scope(APPLICATION)
public class SwcmApplicationCache implements Serializable {
@Logger private Log log;
CategoryDAO categoryDao = new CategoryDAO();
public String refreshCategories() {
String outcome = ActionOutcomes.SUCCESS;
try {
categories.clear();
categories.addAll(categoryDao.getAllCategories());
staleCategory = false;
} catch (ServerException e) {
e.printStackTrace();
outcome = ActionOutcomes.FAILURE;
}
log.info("updating application cache categories outcome: "+outcome);
return outcome;
}
...
}
============================================
@Name("categoryDao")
public class CategoryDAO extends AbstractDAO {
@Logger private Log log;
public ArrayList getAllCategories() throws ServerException {
...
System.out.println("Logger is: "+log);
log.info("#0 categories returned ...", categories.size());
return categories;
}
}
bombs on Line 55 - the log.info() in the CategoryDAO ... (categories is NOT null) ...
14:39:56,171 INFO [STDOUT] Logger is: null
Caused by: java.lang.NullPointerException
at com.jostens.swcm.sql.CategoryDAO.getAllCategories(CategoryDAO.java:55)
at com.jostens.swcm.application.SwcmApplicationCache.refreshCategories(SwcmApplicationCache.java:68)
Unless someone can tell me what I am doing wrong, I may have to replace all my logging with System.out.print()'s ...
I am using JBOSS Developer Studio and set up my project using its ejb wizard. The SEAM Logger works fine in some other classes ...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4125667#4125667
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125667
18 years, 2 months