[jboss-user] [EJB 3.0] - Re: JMX conflict when embedding
JGF1
do-not-reply at jboss.com
Sun May 18 06:34:41 EDT 2008
I have exactly the same issue and experience this when going through the Java Persistence with Hibernate book...
See below:
Similar Errors:
http://forum.hibernate.org/viewtopic.php?p=2374330&sid=93c1571e772bdc0f43403f8d24234195
http://lists.jboss.org/pipermail/jboss-user/2007-April/051335.html
Error logged to console:
Fails on EJB3StandaloneBootstrap.boot(null) in HelloWorld
Oddly it works in your download. Only differences that exist are in folder names. Yours is helloworld-ejb\build. Mine is helloworldEJB\bin.
I've factored this in to later line: EJB3StandaloneBootstrap.scanClasspath("helloworldEJB/bin".replace("/", File.separator));
Am I missing something else? Can zip this up if you want...
|
| C:\Book Downloads\Java Persistence with Hibernate\Jeremys Hello Junk\helloworldE
| JB>ant run
| Buildfile: build.xml
|
| compile:
| [javac] Compiling 1 source file to C:\Book Downloads\Java Persistence with H
| ibernate\Jeremys Hello Junk\helloworldEJB\bin
|
| copymetafiles:
|
| run:
| [java] cp: C:\Book Downloads\Java Persistence with Hibernate\Jeremys Hello
| Junk\helloworldEJB\lib\hibernate-all.jar;C:\Book Downloads\Java Persistence with
| Hibernate\Jeremys Hello Junk\helloworldEJB\lib\jboss-ejb3-all.jar;C:\Book Downl
| oads\Java Persistence with Hibernate\Jeremys Hello Junk\helloworldEJB\lib\thirdp
| arty-all.jar;C:\Book Downloads\Java Persistence with Hibernate\Jeremys Hello Jun
| k\helloworldEJB\bin
| [java] JGF1 null
| [java] 11:15:30,468 ERROR AbstractKernelController:440 - Error installing t
| o Start: name=UserTransaction state=Create
| [java] java.lang.RuntimeException: Unable to lookup TransactionManager
| [java] at org.jboss.ejb3.tx.TxUtil.getTransactionManager(TxUtil.java:51
| )
| [java] at org.jboss.ejb3.embedded.UserTransactionImpl.start(UserTransac
| tionImpl.java:62)
| [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces
| sorImpl.java:39)
| [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
| hodAccessorImpl.java:25)
| [java] at java.lang.reflect.Method.invoke(Method.java:597)
| [java] at org.jboss.reflect.plugins.introspection.ReflectionUtils.invok
| e(ReflectionUtils.java:55)
| [java] at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl
| .invoke(ReflectMethodInfoImpl.java:107)
| [java] at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(Bas
| icMethodJoinPoint.java:66)
| [java] at org.jboss.kernel.plugins.dependency.KernelControllerContextAc
| tion.dispatchJoinPoint(KernelControllerContextAction.java:75)
| [java] at org.jboss.kernel.plugins.dependency.LifecycleAction.installAc
| tion(LifecycleAction.java:115)
| [java] at org.jboss.kernel.plugins.dependency.KernelControllerContextAc
| tion.install(KernelControllerContextAction.java:100)
| [java] at org.jboss.dependency.plugins.AbstractControllerContextActions
| .install(AbstractControllerContextActions.java:51)
| [java] at org.jboss.dependency.plugins.AbstractControllerContext.instal
| l(AbstractControllerContext.java:226)
| [java] at org.jboss.dependency.plugins.AbstractController.install(Abstr
| actController.java:709)
| [java] at org.jboss.dependency.plugins.AbstractController.incrementStat
| e(AbstractController.java:429)
| [java] at org.jboss.dependency.plugins.AbstractController.resolveContex
| ts(AbstractController.java:538)
| [java] at org.jboss.dependency.plugins.AbstractController.resolveContex
| ts(AbstractController.java:472)
| [java] at org.jboss.dependency.plugins.AbstractController.install(Abstr
| actController.java:274)
| [java] at org.jboss.dependency.plugins.AbstractController.install(Abstr
| actController.java:177)
| [java] at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.de
| ployBean(AbstractKernelDeployer.java:291)
| [java] at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.de
| ployBeans(AbstractKernelDeployer.java:261)
| [java] at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.de
| ploy(AbstractKernelDeployer.java:117)
| [java] at org.jboss.kernel.plugins.deployment.xml.BeanXMLDeployer.deplo
| y(BeanXMLDeployer.java:95)
| [java] at org.jboss.ejb3.embedded.EJB3StandaloneBootstrap.boot(EJB3Stan
| daloneBootstrap.java:373)
| [java] at hello.HelloWorld.main(Unknown Source)
| [java] Caused by: javax.naming.NoInitialContextException: Cannot instantiat
| e class: org.jnp.interfaces.LocalOnlyContextFactory [Root exception is java.lan
| g.ClassNotFoundException: org.jnp.interfaces.LocalOnlyContextFactory ]
| [java] at javax.naming.spi.NamingManager.getInitialContext(NamingManage
| r.java:657)
| [java] at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.
| java:288)
| [java] at javax.naming.InitialContext.init(InitialContext.java:223)
| [java] at javax.naming.InitialContext.<init>(InitialContext.java:175)
| [java] at org.jboss.ejb3.tx.TxUtil.getTransactionManager(TxUtil.java:45
| )
| [java] ... 25 more
| [java] Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.Loca
| lOnlyContextFactory
| [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
| [java] at java.security.AccessController.doPrivileged(Native Method)
| [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
| [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
| [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
|
| [java] Exception in thread "main" java.lang.RuntimeException: java.lang.Ill
| egalStateException: Incompletely deployed:
| [java]
| [java] *** DEPLOYMENTS IN ERROR: Name -> Error
| [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| [java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
|
| [java] at java.lang.Class.forName0(Native Method)
| [java] at java.lang.Class.forName(Class.java:247)
| [java] at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelp
| er12.java:46)
| [java] UserTransaction -> java.lang.RuntimeException: Unable to lookup Tran
| sactionManager
| [java]
| [java] at javax.naming.spi.NamingManager.getInitialContext(NamingManage
| r.java:654)
| [java] ... 29 more
| [java] *** DEPLOYMENTS MISSING DEPENDENCIES: Name -> Dependency{Required St
| ate:Actual State}
| [java] UserTransactionBinding -> UserTransaction{Configured:**ERROR**}, Ini
| tialContextProperties{Configured:Installed}
| [java]
| [java] at org.jboss.ejb3.embedded.EJB3StandaloneBootstrap.boot(EJB3Stan
| daloneBootstrap.java:386)
| [java] at hello.HelloWorld.main(Unknown Source)
| [java] Caused by: java.lang.IllegalStateException: Incompletely deployed:
| [java]
| [java] *** DEPLOYMENTS IN ERROR: Name -> Error
| [java] UserTransaction -> java.lang.RuntimeException: Unable to lookup Tran
| sactionManager
| [java]
| [java] *** DEPLOYMENTS MISSING DEPENDENCIES: Name -> Dependency{Required St
| ate:Actual State}
| [java] UserTransactionBinding -> UserTransaction{Configured:**ERROR**}, Ini
| tialContextProperties{Configured:Installed}
| [java]
| [java] at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.in
| ternalValidate(AbstractKernelDeployer.java:241)
| [java] at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.va
| lidate(AbstractKernelDeployer.java:161)
| [java] at org.jboss.ejb3.embedded.EJB3StandaloneBootstrap.boot(EJB3Stan
| daloneBootstrap.java:374)
| [java] ... 1 more
| [java] Java Result: 1
|
| BUILD SUCCESSFUL
| Total time: 2 seconds
| C:\Book Downloads\Java Persistence with Hibernate\Jeremys Hello Junk\helloworldE
| JB>
|
WORKDIR = helloworldEJB
build.xml
| <project name="Hello World with EJB3" default="compile" basedir=".">
|
| <!-- Name of project and version -->
| <property name="proj.name" value="Hello World with EJB3"/>
| <property name="proj.shortname" value="helloworld-ejb3"/>
| <property name="version" value="1.0"/>
|
| <!-- Global properties for this build -->
| <property name="database.dir" value="database"/>
| <property name="src.java.dir" value="src"/>
| <property name="src.etc.dir" value="etc"/>
| <property name="lib.dir" value="lib"/>
| <property name="build.dir" value="bin"/>
|
| <!-- Classpath declaration -->
| <path id="project.classpath">
| <fileset dir="${lib.dir}">
| <include name="**/*.jar"/>
| <include name="**/*.zip"/>
| </fileset>
| </path>
|
| <!-- Useful shortcuts -->
| <patternset id="meta.files">
| <include name="**/*.xml"/>
| <include name="**/*.properties"/>
| </patternset>
|
| <!-- Clean up -->
| <target name="clean" description="Clean the build directory">
| <delete dir="${build.dir}"/>
| </target>
|
| <!-- Compile Java source -->
| <target name="compile">
| <mkdir dir="${build.dir}"/>
| <javac srcdir="${src.java.dir}"
| destdir="${build.dir}"
| classpathref="project.classpath"/>
| </target>
|
| <!-- Copy metadata to build classpath -->
| <target name="copymetafiles">
| <mkdir dir="${build.dir}"/>
| <copy todir="${build.dir}">
| <fileset dir="${src.java.dir}">
| <patternset refid="meta.files"/>
| </fileset>
| </copy>
| <copy todir="${build.dir}">
| <fileset dir="${src.etc.dir}">
| <patternset refid="meta.files"/>
| </fileset>
| </copy>
| </target>
|
| <!-- Run HelloWorld -->
| <target name="run" depends="compile, copymetafiles"
| description="Build and run HelloWorld">
| <java fork="true"
| classname="hello.HelloWorld"
| classpathref="project.classpath">
| <classpath path="${build.dir}"/>
| </java>
| </target>
|
| <!-- Start the HSQL DB server -->
| <target name="startdb" description="Run HSQL database server with clean DB">
| <!-- Delete database files -->
| <delete dir="${database.dir}"/>
| <java classname="org.hsqldb.Server"
| fork="yes"
| classpathref="project.classpath"
| failonerror="true">
| <arg value="-database.0"/>
| <arg value="file:${database.dir}/db"/>
| </java>
| </target>
|
| <!-- Start the HSQL DB browser tool -->
| <target name="dbmanager" description="Start HSQL DB manager">
| <java
| classname="org.hsqldb.util.DatabaseManagerSwing"
| fork="yes"
| classpathref="project.classpath"
| failonerror="true">
| <arg value="-url"/>
| <arg value="jdbc:hsqldb:hsql://localhost/"/>
| <arg value="-driver"/>
| <arg value="org.hsqldb.jdbcDriver"/>
| </java>
| </target>
|
| </project>
|
etc
default.persistence.properties
| hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup
| hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider
|
ejb3-interceptors-aop.xml
| <?xml version="1.0" encoding="UTF-8"?>
| <!DOCTYPE aop PUBLIC
| "-//JBoss//DTD JBOSS AOP 1.0//EN"
| "http://www.jboss.org/aop/dtd/jboss-aop_1_0.dtd">
|
| <aop>
| <interceptor class="org.jboss.aspects.remoting.InvokeRemoteInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.aspects.security.SecurityClientInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.aspects.tx.ClientTxPropagationInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.remoting.IsLocalInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.aspects.remoting.ClusterChooserInterceptor" scope="PER_VM"/>
|
| <interceptor class="org.jboss.aspects.tx.TxPropagationInterceptor" scope="PER_VM"/>
|
| <stack name="ServiceClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="AsynchronousStatelessSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="AsynchronousStatefulSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="StatelessSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="StatefulSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="ClusteredStatelessSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <stack name="ClusteredStatefulSessionClientInterceptors">
| <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
| </stack>
|
| <interceptor class="org.jboss.ejb3.asynchronous.AsynchronousInterceptor" scope="PER_CLASS"/>
| <interceptor class="org.jboss.ejb3.ENCPropagationInterceptor" scope="PER_VM"/>
| <interceptor name="Basic Authorization" factory="org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorFactory" scope="PER_CLASS"/>
| <interceptor name="JACC Authorization" factory="org.jboss.ejb3.security.JaccAuthorizationInterceptorFactory" scope="PER_CLASS"/>
| <interceptor factory="org.jboss.ejb3.security.AuthenticationInterceptorFactory" scope="PER_CLASS"/>
| <interceptor factory="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory" scope="PER_CLASS"/>
| <interceptor class="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.stateless.StatelessInstanceInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.stateful.StatefulInstanceInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.service.ServiceSingletonInterceptor" scope="PER_VM"/>
| <interceptor class="org.jboss.ejb3.cache.StatefulReplicationInterceptor" scope="PER_VM"/>
| <interceptor factory="org.jboss.ejb3.stateful.StatefulRemoveFactory" scope="PER_CLASS_JOINPOINT"/>
| <interceptor factory="org.jboss.ejb3.tx.TxInterceptorFactory" scope="PER_CLASS_JOINPOINT"/>
| <interceptor factory="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory" scope="PER_CLASS_JOINPOINT"/>
| <interceptor factory="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory" scope="PER_CLASS"/>
| <interceptor class="org.jboss.ejb3.AllowedOperationsInterceptor" scope="PER_VM"/>
| <interceptor factory="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory" scope="PER_CLASS"/>
| <interceptor class="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor" scope="PER_VM"/>
|
| <domain name="Stateless Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="Basic Authorization"/>
| </bind>
| <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
| <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
| </annotation>
| </domain>
|
| <domain name="JACC Stateless Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="JACC Authorization"/>
| </bind>
| <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
| <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
| </annotation>
| </domain>
|
| <domain name="Base Stateful Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="Basic Authorization"/>
| </bind>
| <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
| <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->@javax.ejb.Remove(..))">
| <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| </bind>
| <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
|
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
| <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/>
| </bind>
| <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
| </annotation>
| </domain>
|
| <domain name="Stateful Bean" extends="Base Stateful Bean" inheritBindings="true">
| <!-- NON Clustered cache configuration -->
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND !class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class)
| </annotation>
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class)
| </annotation>
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300)
| </annotation>
|
| <!-- Clustered cache configuration -->
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class)
| </annotation>
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300)
| </annotation>
| </domain>
|
| <domain name="JACC Stateful Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="JACC Authorization"/>
| </bind>
| <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
| <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->@javax.ejb.Remove(..))">
| <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/>
| <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| </bind>
| <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
|
| <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
| <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/>
| </bind>
| <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
| </annotation>
|
| <!-- NON Clustered cache configuration -->
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND !class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class)
| </annotation>
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class)
| </annotation>
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300)
| </annotation>
|
| <!-- Clustered cache configuration -->
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class)
| </annotation>
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class(@org.jboss.annotation.ejb.Clustered)">
| @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300)
| </annotation>
| </domain>
|
| <domain name="Embedded Stateful Bean" extends="Base Stateful Bean" inheritBindings="true">
| <!-- NON Clustered cache configuration -->
| <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache)">
| @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class)
| </annotation>
|
| </domain>
|
| <domain name="Message Driven Bean">
| <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000)
| </annotation>
| </domain>
|
| <domain name="Consumer Bean">
| <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| </bind>
| <bind pointcut="execution(public * *->*(..)) AND (has(* *->@org.jboss.annotation.ejb.CurrentMessage(..)) OR hasfield(* *->@org.jboss.annotation.ejb.CurrentMessage))">
| <interceptor-ref name="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
| @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000)
| </annotation>
| </domain>
|
| <domain name="Service Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
| </bind>
| <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))">
| <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="Basic Authorization"/>
| </bind>
| <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| </bind>
| <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())">
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| </domain>
|
| <domain name="JACC Service Bean">
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
| </bind>
| <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))">
| <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
| <interceptor-ref name="Basic Authorization"/>
| </bind>
| <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
| <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
| </bind>
| <bind pointcut="execution(public * *->*(..))">
| <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
| <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
| <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
| </bind>
| <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())">
| <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
| </bind>
| </domain>
|
|
| </aop>
|
embedded-jboss-beans.xml
| <?xml version="1.0" encoding="UTF-8"?>
|
| <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
| xmlns="urn:jboss:bean-deployer:2.0">
| <bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
|
| <bean name="InitialContextProperties" class="java.util.Hashtable">
| <constructor>
| <parameter class="java.util.Map">
| <map keyClass="java.lang.String" valueClass="java.lang.String">
| <entry>
| <key>java.naming.factory.initial</key>
| <value>org.jnp.interfaces.LocalOnlyContextFactory</value>
| </entry>
| <entry>
| <key>java.naming.factory.url.pkgs</key>
| <value>org.jboss.naming:org.jnp.interfaces</value>
| </entry>
| </map>
| </parameter>
| </constructor>
| </bean>
|
| <bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer">
| <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
| </bean>
|
| <bean name="XidFactory" class="org.jboss.tm.XidFactoryImpl"/>
|
| <bean name="XidFactoryMBean" class="org.jboss.ejb3.embedded.XidFactoryMBean">
| <constructor>
| <parameter class="org.jboss.tm.XidFactoryBase">
| <inject bean="XidFactory"/>
| </parameter>
| </constructor>
| </bean>
|
| <bean name="TransactionManagerInitializer" class="org.jboss.tm.TransactionManagerInitializer">
| <property name="xidFactory"><inject bean="XidFactory"/></property>
| <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
| </bean>
|
| <bean name="UserTransaction" class="org.jboss.ejb3.embedded.UserTransactionImpl">
| <demand>TransactionManagerInitializer</demand>
| </bean>
|
| <bean name="UserTransactionBinding" class="org.jboss.ejb3.embedded.JndiBinder">
| <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
| <property name="target"><inject bean="UserTransaction"/></property>
| <property name="bindTo">UserTransaction</property>
| <property name="serializable">false</property>
| </bean>
|
|
| <bean name="TransactionManager" class="java.lang.Object">
| <constructor factoryMethod="getTransactionManager">
| <factory bean="TransactionManagerInitializer"/>
| </constructor>
| </bean>
| <bean name="CachedConnectionManager" class="org.jboss.resource.connectionmanager.CachedConnectionManagerReference">
| <property name="transactionManager"><inject bean="TransactionManager"/></property>
| </bean>
|
| <!--
| <bean class="org.jboss.jdbc.HypersonicDatabase"
| name="jboss:service=Hypersonic,database=localDB">
| <property name="database">localDB</property>
| <property name="inProcessMode">true</property>
| <property name="dbDataDir">.</property>
| </bean>
| -->
|
| <!-- Not needed without JMS
|
| <bean name="DefaultDSBootstrap" class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource">
| <property name="driverClass">org.hsqldb.jdbcDriver</property>
| <property name="connectionURL">jdbc:hsqldb:.</property>
| <property name="userName">sa</property>
| <property name="jndiName">java:/DefaultDS</property>
| <property name="minSize">0</property>
| <property name="maxSize">10</property>
| <property name="blockingTimeout">1000</property>
| <property name="idleTimeout">100000</property>
| <property name="transactionManager"><inject bean="TransactionManager"/></property>
| <property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property>
| <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
| </bean>
|
| <bean name="DefaultDS" class="java.lang.Object">
| <constructor factoryMethod="getDatasource">
| <factory bean="DefaultDSBootstrap"/>
| </constructor>
| </bean>
| -->
|
| <!--
| <bean name="TimerServiceFactory" class="org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory">
| <property name="properties">
| org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT
| org.quartz.jobStore.nonManagedTXDataSource=myDS
| org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
| org.quartz.jobStore.tablePrefix=QRTZ_
| org.quartz.jobStore.dataSource=myDS
|
| # To get it to work with hypersonic
| # FIXME: this doesn't lock the row
| org.quartz.jobStore.selectWithLockSQL=SELECT * FROM qrtz_locks WHERE lock_name = ?
|
| # from quartz.properties
| org.quartz.scheduler.instanceName=JBossEJB3QuartzScheduler
| org.quartz.scheduler.rmi.export=false
| org.quartz.scheduler.rmi.proxy=false
| org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
|
| org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
| org.quartz.threadPool.threadCount=10
| org.quartz.threadPool.threadPriority=5
| org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
|
| org.quartz.jobStore.misfireThreshold=60000
| </property>
| <property name="dataSource">java:/DefaultDS</property>
| <property name="sqlProperties">
| CREATE_DB_ON_STARTUP = TRUE
|
| CREATE_TABLE_JOB_DETAILS = CREATE TABLE qrtz_job_details(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
| DESCRIPTION VARCHAR(120) NULL, JOB_CLASS_NAME VARCHAR(128) NOT NULL, IS_DURABLE VARCHAR(1) NOT NULL, \
| IS_VOLATILE VARCHAR(1) NOT NULL, IS_STATEFUL VARCHAR(1) NOT NULL, REQUESTS_RECOVERY VARCHAR(1) NOT NULL, \
| JOB_DATA BINARY NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP))
| CREATE_TABLE_JOB_LISTENERS = CREATE TABLE qrtz_job_listeners(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
| JOB_LISTENER VARCHAR(80) NOT NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
| REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
| CREATE_TABLE_TRIGGERS = CREATE TABLE qrtz_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, TRIGGER_GROUP VARCHAR(80) NOT NULL, \
| JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, DESCRIPTION VARCHAR(120) NULL, \
| NEXT_FIRE_TIME NUMERIC(13) NULL, PREV_FIRE_TIME NUMERIC(13) NULL, TRIGGER_STATE VARCHAR(16) NOT NULL, \
| TRIGGER_TYPE VARCHAR(8) NOT NULL, START_TIME NUMERIC(13) NOT NULL, END_TIME NUMERIC(13) NULL, CALENDAR_NAME VARCHAR(80) NULL, \
| MISFIRE_INSTR NUMERIC(2) NULL, JOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
| REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
| CREATE_TABLE_SIMPLE_TRIGGERS = CREATE TABLE qrtz_simple_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
| TRIGGER_GROUP VARCHAR(80) NOT NULL, REPEAT_COUNT NUMERIC(7) NOT NULL, REPEAT_INTERVAL NUMERIC(12) NOT NULL, \
| TIMES_TRIGGERED NUMERIC(7) NOT NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
| REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
| CREATE_TABLE_CRON_TRIGGERS = CREATE TABLE qrtz_cron_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
| TRIGGER_GROUP VARCHAR(80) NOT NULL, CRON_EXPRESSION VARCHAR(80) NOT NULL, TIME_ZONE_ID VARCHAR(80), \
| PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
| REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
| CREATE_TABLE_BLOB_TRIGGERS = CREATE TABLE qrtz_blob_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
| TRIGGER_GROUP VARCHAR(80) NOT NULL, BLOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), \
| FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
| CREATE_TABLE_TRIGGER_LISTENERS = CREATE TABLE qrtz_trigger_listeners(TRIGGER_NAME VARCHAR(80) NOT NULL, \
| TRIGGER_GROUP VARCHAR(80) NOT NULL, TRIGGER_LISTENER VARCHAR(80) NOT NULL, \
| PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
| REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
| CREATE_TABLE_CALENDARS = CREATE TABLE qrtz_calendars(CALENDAR_NAME VARCHAR(80) NOT NULL, CALENDAR BINARY NOT NULL, \
| PRIMARY KEY (CALENDAR_NAME))
| CREATE_TABLE_PAUSED_TRIGGER_GRPS = CREATE TABLE qrtz_paused_trigger_grps(TRIGGER_GROUP VARCHAR(80) NOT NULL, \
| PRIMARY KEY (TRIGGER_GROUP))
| CREATE_TABLE_FIRED_TRIGGERS = CREATE TABLE qrtz_fired_triggers(ENTRY_ID VARCHAR(95) NOT NULL, TRIGGER_NAME VARCHAR(80) NOT NULL, \
| TRIGGER_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, INSTANCE_NAME VARCHAR(80) NOT NULL, \
| FIRED_TIME NUMERIC(13) NOT NULL, STATE VARCHAR(16) NOT NULL, JOB_NAME VARCHAR(80) NULL, JOB_GROUP VARCHAR(80) NULL, \
| IS_STATEFUL VARCHAR(1) NULL, REQUESTS_RECOVERY VARCHAR(1) NULL, PRIMARY KEY (ENTRY_ID))
| CREATE_TABLE_SCHEDULER_STATE = CREATE TABLE qrtz_scheduler_state(INSTANCE_NAME VARCHAR(80) NOT NULL, \
| LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, CHECKIN_INTERVAL NUMERIC(13) NOT NULL, RECOVERER VARCHAR(80) NULL, \
| PRIMARY KEY (INSTANCE_NAME))
| CREATE_TABLE_LOCKS = CREATE TABLE qrtz_locks(LOCK_NAME VARCHAR(40) NOT NULL, PRIMARY KEY (LOCK_NAME))
| INSERT_TRIGGER_ACCESS = INSERT INTO qrtz_locks values('TRIGGER_ACCESS')
| INSERT_JOB_ACCESS = INSERT INTO qrtz_locks values('JOB_ACCESS')
| INSERT_CALENDAR_ACCESS = INSERT INTO qrtz_locks values('CALENDAR_ACCESS')
| INSERT_STATE_ACCESS = INSERT INTO qrtz_locks values('STATE_ACCESS')
| INSERT_MISFIRE_ACCESS = INSERT INTO qrtz_locks values('MISFIRE_ACCESS')
| </property>
| </bean>
|
| -->
|
| </deployment>
|
jndi.properties
| java.naming.factory.initial org.jnp.interfaces.LocalOnlyContextFactory
| java.naming.factory.url.pkgs org.jboss.naming:org.jnp.interfaces
|
log4j.properties
| # Direct log messages to stdout
| log4j.appender.stdout=org.apache.log4j.ConsoleAppender
| log4j.appender.stdout.Target=System.out
| log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
| log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
|
| # Root logger option
| log4j.rootLogger=INFO, stdout
|
| # Hibernate logging options (INFO only shows startup messages)
| #log4j.logger.org.hibernate=DEBUG
|
| # Log JDBC bind parameter runtime arguments
| #log4j.logger.org.hibernate.type=DEBUG
|
| # JBoss EJB 3.0 container logging
| #log4j.logger.org.jboss=DEBUG
|
| # Disable warnings of noisy classes
| log4j.logger.org.jboss.ejb3.timerservice.jboss.JBossTimerServiceFactory=ERROR
| log4j.logger.org.hibernate.ejb.Ejb3Configuration=ERROR
|
etc/META-INF
helloworld-beans.xml
| <?xml version="1.0" encoding="UTF-8"?>
| <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
| xmlns="urn:jboss:bean-deployer:2.0">
|
| <!-- Enable a JCA datasource available through JNDI -->
| <bean name="helloWorldDatasourceFactory"
| class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource">
| <property name="jndiName">java:/HelloWorldDS</property>
| <!-- HSQLDB -->
| <property name="driverClass">org.hsqldb.jdbcDriver</property>
| <property name="connectionURL">jdbc:hsqldb:hsql://localhost</property>
| <property name="userName">sa</property>
|
| <property name="minSize">0</property>
| <property name="maxSize">10</property>
| <property name="blockingTimeout">1000</property>
| <property name="idleTimeout">100000</property>
|
| <property name="transactionManager"><inject bean="TransactionManager"/></property>
| <property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property>
| <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
| </bean>
|
| <bean name="HelloWorldDS" class="java.lang.Object">
| <constructor factoryMethod="getDatasource">
| <factory bean="helloWorldDatasourceFactory"/>
| </constructor>
| </bean>
| </deployment>
|
persistence.xml
| <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
| http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
| <persistence-unit name="helloworld">
| <jta-data-source>java:/HelloWorldDS</jta-data-source>
| <properties>
| <property name="hibernate.archive.autodetection" value="class, hbm"/>
| <!-- SQL stdout logging -->
| <property name="hibernate.show_sql" value="true"/>
| <property name="hibernate.format_sql" value="true"/>
| <property name="use_sql_comments" value="true"/>
| <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
| <property name="hibernate.hbm2ddl.auto" value="create"/>
| </properties>
| </persistence-unit>
| </persistence>
|
lib
hibernate-all.jar
jboss-ejb3-all.jar
thirdparty-all.jar
src/hello
HelloWorld.java
| package hello;
|
| import org.jboss.ejb3.embedded.EJB3StandaloneBootstrap;
| import javax.naming.InitialContext;
| import java.io.File;
|
| public class HelloWorld {
|
| public static void main(String[] args) throws Exception {
|
| // Boot the JBoss Microcontainer with EJB3 settings, automatically
| // loads ejb3-interceptors-aop.xml and embedded-jboss-beans.xml
| System.out.println("cp: " + System.getProperty("java.class.path"));
| System.out.println("JGF1 null");
| EJB3StandaloneBootstrap.boot(null);
|
| // Deploy custom stateless beans (datasource, mostly)
| System.out.println("JGF1 META-INF");
| EJB3StandaloneBootstrap.deployXmlResource("META-INF/helloworld-beans.xml");
|
| // Deploy all EJBs found on classpath (slow, scans all)
| // EJB3StandaloneBootstrap.scanClasspath();
|
| // Deploy all EJBs found on classpath (fast, scans build directory)
| // This is a relative location, matching the substring end of one
| // of java.class.path locations. Print out the value of
| // System.getProperty("java.class.path") to see all paths.
| EJB3StandaloneBootstrap.scanClasspath("helloworldEJB/bin".replace("/", File.separator));
|
| // Create InitialContext from jndi.properties
| InitialContext initialContext = new InitialContext();
|
| // Look up the stateless MessageHandler EJB
| MessageHandler msgHandler =
| (MessageHandler) initialContext.lookup("MessageHandlerBean/local");
|
| // Call the stateless EJB
| msgHandler.saveMessages();
| msgHandler.showMessages();
|
| // Shutdown EJB container
| EJB3StandaloneBootstrap.shutdown();
| }
| }
|
Message.java
| package hello;
|
| import javax.persistence.*;
|
| @Entity
| @Table(name = "MESSAGES")
| public class Message {
|
| @Id @GeneratedValue
| @Column(name = "MESSSAGE_ID")
| private Long id;
|
| @Column(name = "MESSAGE_TEXT")
| private String text;
|
| @ManyToOne(cascade = CascadeType.ALL)
| @JoinColumn(name = "NEXT_MESSAGE_ID")
| private Message nextMessage;
|
| Message() {}
|
| public Message(String text) {
| this.text = text;
| }
|
| public Long getId() {
| return id;
| }
|
| private void setId(Long id) {
| this.id = id;
| }
|
| public String getText() {
| return text;
| }
|
| public void setText(String text) {
| this.text = text;
| }
|
| public Message getNextMessage() {
| return nextMessage;
| }
|
| public void setNextMessage(Message nextMessage) {
| this.nextMessage = nextMessage;
| }
| }
|
MessageHandler.java
| package hello;
|
| public interface MessageHandler {
|
| public void saveMessages();
|
| public void showMessages();
| }
|
MessageHandlerBean.java
| package hello;
|
| import javax.ejb.Stateless;
| import javax.persistence.*;
| import java.util.List;
|
| @Stateless
| public class MessageHandlerBean implements MessageHandler {
|
| @PersistenceContext
| EntityManager em;
|
| public void saveMessages() {
| Message message = new Message("Hello World");
| em.persist(message);
| }
|
| public void showMessages() {
| List messages =
| em.createQuery("select m from Message m order by m.text asc")
| .getResultList();
|
| System.out.println(messages.size() + " message(s) found:");
|
| for (Object m : messages) {
| Message loadedMsg = (Message) m;
| System.out.println(loadedMsg.getText());
| }
| }
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4151619#4151619
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4151619
More information about the jboss-user
mailing list