[jboss-jira] [JBoss JIRA] Commented: (EJBTHREE-681) Ejb 3 Deployment separated into different jars that have persistence dependencies cause a jacc initialisation error

Roland R?z (JIRA) jira-events at jboss.com
Tue Jan 9 02:57:27 EST 2007


    [ http://jira.jboss.com/jira/browse/EJBTHREE-681?page=comments#action_12349796 ] 
            
Roland R?z commented on EJBTHREE-681:
-------------------------------------

This jacc initialisation error can occur also when using dependency injection over different jar files.

A possible workaround is checking before each access if the context policy in not committed and commit in this case the policy.


> Ejb 3 Deployment separated into different jars that have persistence dependencies cause a jacc initialisation error
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: EJBTHREE-681
>                 URL: http://jira.jboss.com/jira/browse/EJBTHREE-681
>             Project: EJB 3.0
>          Issue Type: Bug
>    Affects Versions: EJB 3.0 RC8 - FD
>            Reporter: Roland R?z
>
> We separated the jboss trails deployment into two different jar's (persistence and stateless session beans).
> The ear (ejb3-trials-ear.ear) contains two jar modules (ejb3-trials-ejb.jar & ejb3-trials-persistence.jar).  The ejb3-trials-ejb.jar is deployed as fist module but it has a dependency to the ejb3-trials-persistence.jar because it uses the EntityManager from ejb3-trials-persistence.
> Therefore the ejb container of ejb3-trials-ejb.jar is started after the ejb3-trials-ejb.jar modules. This causes an error with the jacc initialisation. The policy is committed before the ejb container could register is permissions. When the stateless ejb containers add the permissions afterwards, the committed policy will be removed and never committed again.
> Because the ejb module commits the jacc policy, the ejb containers providing the permissions must be stated before the module.
> Here the steps:
> Ejb3Deployment.registerEJBContainer()
>   object name  : jboss.j2ee:service=EJB3,ear=ejb3-trials-ear.ear,jar=ejb3-trials-ejb.jar,name=EntityCalculator
>   dependencies : persistence.units:ear=ejb3-trials-ear.ear,unitName=ejb3-trials-persistence
> Ejb3Module.startService()
>   service name : jboss.j2ee:service=EJB3,module=ejb3-trials-ejb.jar
>         - JACC contextID ejb3-trials-ejb.jar is commited
> -> This is an error because it should be waited until ALL container of this module are started
> Ejb3Module.startService()
>   service name: jboss.j2ee:service=EJB3,module=ejb3-trials-persistence.jar
>         - dependencie from jar=ejb3-trials-ejb.jar to ejb3-trials-persistence.jar is resolved and the stateless container is started
> StatelessContainer.start()
>         ejb3-trials-ejb.jar
>         - JACC contextID ejb3-trials-ejb.jar
>         Adds stuff to the policy
> Ejb3Module.startService()
>   service name: jboss.j2ee:service=EJB3,module=ejb3-trials-persistence.jar
> 08:36:44,308 INFO  [org.jboss.deployment.EARDeployer] Init J2EE application: file:/C:/eplatform/jboss/4.0/server/eplatform-development/deploy/ejb3-trials-ear.ear
> 08:36:44,428 WARN  [org.jboss.deployment.MainDeployer] Found non-jar deployer for ejb3-trials-persistence.jar: MBeanProxyExt[jboss.ejb3:service=EJB3Deployer]
> 08:36:44,438 WARN  [org.jboss.deployment.MainDeployer] Found non-jar deployer for ejb3-trials-persistence.jar: MBeanProxyExt[jboss.ejb3:service=EJB3Deployer]
> 08:36:44,599 INFO  [org.jboss.ejb3.Ejb3Deployment] EJB3 deployment time took: 111
> 08:36:44,689 INFO  [org.jboss.ejb3.Ejb3Deployment] EJB3 deployment time took: 50
> 08:36:44,759 INFO  [org.jboss.deployment.ClientDeployer] Client ENC bound under: ejb3-trials-client
> 08:36:44,789 INFO  [org.jboss.ejb3.JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=ejb3-trials-ear.ear,jar=ejb3-trials-ejb.jar,name=EntityCalculator,service=EJB3 with dependencies:
> 08:36:44,789 INFO  [org.jboss.ejb3.JmxKernelAbstraction] 	persistence.units:ear=ejb3-trials-ear.ear,unitName=ejb3-trials-persistence
> 08:36:44,809 DEBUG [com.winterthur.jackpot.security.jacc.JackpotPolicyConfiguration.ejb3-trials-ear.ear] linkConfiguration, linkTo: ejb3-trials-ejb.jar
> 08:36:44,809 DEBUG [com.winterthur.jackpot.security.jacc.JackpotPolicyConfiguration.ejb3-trials-ejb.jar] commit
> 08:36:44,809 INFO  [org.jboss.ejb3.EJB3Deployer] Deployed: file:/C:/eplatform/jboss/4.0/server/eplatform-development/tmp/deploy/tmp11029ejb3-trials-ear.ear-contents/ejb3-trials-ejb.jar
> 08:36:44,819 INFO  [org.jboss.ejb3.JmxKernelAbstraction] installing MBean: persistence.units:ear=ejb3-trials-ear.ear,unitName=ejb3-trials-persistence with dependencies:
> 08:36:44,819 INFO  [org.jboss.ejb3.JmxKernelAbstraction] 	jboss.jca:name=DefaultDS,service=ManagedConnectionFactory
> 08:36:44,849 INFO  [org.hibernate.ejb.Ejb3Configuration] Processing PersistenceUnitInfo [
> 	name: ejb3-trials-persistence
> 	...]
> 08:36:44,859 INFO  [org.hibernate.ejb.Ejb3Configuration] found EJB3 Entity bean: trail.entity.beans.Record
> 08:36:44,869 INFO  [org.hibernate.ejb.Ejb3Configuration] found EJB3 Entity bean: trail.entity.beans.TimedRecord
> 08:36:44,869 INFO  [org.hibernate.ejb.Ejb3Configuration] found EJB3 Entity bean: trail.entity.beans.Investor
> 08:36:44,869 INFO  [org.hibernate.ejb.Ejb3Configuration] found EJB3 Entity bean: trail.entity.beans.Fund
> 08:36:44,869 WARN  [org.hibernate.ejb.Ejb3Configuration] Persistence provider caller does not implements the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
> 08:36:44,899 INFO  [org.hibernate.cfg.Configuration] Reading mappings from resource: META-INF/orm.xml
> 08:36:44,899 INFO  [org.hibernate.ejb.Ejb3Configuration] [PersistenceUnit: ejb3-trials-persistence] no META-INF/orm.xml found
> 08:36:44,919 INFO  [org.hibernate.cfg.AnnotationBinder] Binding entity from annotated class: trail.entity.beans.Record
> 08:36:44,919 INFO  [org.hibernate.cfg.annotations.EntityBinder] Bind entity trail.entity.beans.Record on table record
> 08:36:44,959 INFO  [org.hibernate.cfg.AnnotationBinder] Binding entity from annotated class: trail.entity.beans.TimedRecord
> 08:36:44,969 INFO  [org.hibernate.cfg.AnnotationBinder] Binding entity from annotated class: trail.entity.beans.Investor
> 08:36:44,969 INFO  [org.hibernate.cfg.annotations.EntityBinder] Bind entity trail.entity.beans.Investor on table investor
> 08:36:44,969 INFO  [org.hibernate.cfg.AnnotationBinder] Binding entity from annotated class: trail.entity.beans.Fund
> 08:36:44,979 INFO  [org.hibernate.cfg.annotations.EntityBinder] Bind entity trail.entity.beans.Fund on table FUND
> 08:36:45,089 INFO  [org.hibernate.connection.ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
> 08:36:45,089 INFO  [org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider] Using provided datasource
> 08:36:45,089 INFO  [org.hibernate.cfg.SettingsFactory] RDBMS: DB2/SUN, version: SQL08022
> 08:36:45,089 INFO  [org.hibernate.cfg.SettingsFactory] JDBC driver: IBM DB2 JDBC Universal Driver Architecture, version: 2.8.46
> 08:36:45,089 INFO  [org.hibernate.dialect.Dialect] Using dialect: org.hibernate.dialect.FirebirdDialect
> 08:36:45,099 INFO  [org.hibernate.transaction.TransactionFactoryFactory] Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
> 08:36:45,099 INFO  [org.hibernate.transaction.TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
> 08:36:45,099 INFO  [org.hibernate.transaction.TransactionManagerLookupFactory] instantiated TransactionManagerLookup
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Automatic flush during beforeCompletion(): disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Automatic session close at end of transaction: disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Scrollable result sets: enabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] JDBC3 getGeneratedKeys(): disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Connection release mode: auto
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Default batch fetch size: 1
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Generate SQL with comments: disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Order SQL updates by primary key: disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
> 08:36:45,099 INFO  [org.hibernate.hql.ast.ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Query language substitutions: {}
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Second-level cache: enabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Query cache: disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Optimize cache for minimal puts: disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Structured second-level cache entries: disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Statistics: disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Deleted entity synthetic identifier rollback: disabled
> 08:36:45,099 INFO  [org.hibernate.cfg.SettingsFactory] Default entity-mode: pojo
> 08:36:45,119 INFO  [org.hibernate.impl.SessionFactoryImpl] building session factory
> 08:36:45,229 INFO  [org.hibernate.impl.SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
> 08:36:45,240 INFO  [org.hibernate.util.NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
> 08:36:45,280 DEBUG [com.winterthur.jackpot.jboss.transport.Ejb3SubjectDelegationCheckInterceptor] Ejb3SubjectDelegationCheckInterceptor is enabled.
> 08:36:45,530 DEBUG [com.winterthur.jackpot.security.jacc.JackpotPolicyConfiguration.ejb3-trials-ejb.jar] addToUncheckedPolicy, p=(javax.security.jacc.EJBMethodPermission EntityCalculator getFunds,,)[*:getFunds()]
> 08:36:45,530 INFO  [org.jboss.ejb3.EJBContainer] STARTED EJB: trail.entity.basic.EntityCalculator ejbName: EntityCalculator

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list