Thanks for all of your quick responses. I tried doing what you
said,
and this
is the output:
19:48:37,785 DEBUG OpenEjbTest:31 - Set Initial Context
Apache OpenEJB 3.1-SNAPSHOT build: 20080719-01:24
http://openejb.apache.org/
INFO - openejb.home =
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb
INFO - openejb.base =
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb
INFO - Configuring Service(id=Default Security Service,
type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager,
type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Configuring Service(id=thedb, type=Resource, provider-
id=Default JDBC
Database)
INFO - Found PersistenceModule in classpath:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/test-classes
INFO - Found EjbModule in classpath:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes
INFO - Extracting jar:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/test-classes/quartz-ra.rar
INFO - Extracted path:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/test-classes/quartz-ra
INFO - Configuring enterprise application:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/test-classes/quartz-ra.rar
INFO - Enterprise application
"/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/test-classes/quartz-ra.rar"
loaded.
INFO - Configuring enterprise application:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes
INFO - Auto-configuring a message driven bean TimerJob destination
TimerJob
to be destinationType javax.jms.Queue
INFO - Configuring Service(id=Default Stateless Container,
type=Container,
provider-id=Default Stateless Container)
INFO - Auto-creating a container for bean ItemDAOHibernate:
Container(type=STATELESS, id=Default Stateless Container)
INFO - Configuring Service(id=Default MDB Container,
type=Container,
provider-id=Default MDB Container)
INFO - Auto-creating a container for bean TimerJob:
Container(type=MESSAGE,
id=Default MDB Container)
INFO - Configuring Service(id=Default JMS Resource Adapter,
type=Resource,
provider-id=Default JMS Resource Adapter)
INFO - Configuring Service(id=TimerJob, type=Resource, provider-
id=Default
Queue)
INFO - Auto-creating a Resource with id 'TimerJob' of type
'javax.jms.Queue
for 'TimerJob'.
INFO - Configuring PersistenceUnit(name=daoexample,
provider=org.hibernate.ejb.HibernatePersistence)
INFO - Auto-creating a Resource with id 'thedbNonJta' of type
'DataSource
for 'daoexample'.
INFO - Configuring Service(id=thedbNonJta, type=Resource,
provider-
id=thedb)
INFO - Adjusting daoexample <non-jta-data-source> to 'thedbNonJta'
INFO - Enterprise application
"/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes"
loaded.
INFO - Assembling app:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/test-classes/quartz-ra.rar
INFO - start quartz!!!
INFO - Deployed
Application(path=/Users/Hoshi/Documents/Programming/Hibernate/
DaoProjectOpenEjb/target/test-classes/quartz-ra.rar)
INFO - Assembling app:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes
INFO - PersistenceUnit(name=daoexample,
provider=org.hibernate.ejb.HibernatePersistence)
INFO - Hibernate EntityManager 3.2.1.GA
INFO - Hibernate Annotations 3.2.1.GA
INFO - Hibernate 3.2.6
INFO - hibernate.properties not found
INFO - Bytecode provider name : cglib
INFO - using JDK 1.4 java.sql.Timestamp handling
INFO - Reading mappings from resource : META-INF/orm.xml
INFO - Binding entity from annotated class:
com.example.entity.Item
INFO - Bind entity com.example.entity.Item on table Item
INFO - Initializing connection provider:
org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
INFO - Using provided datasource
INFO - RDBMS: HSQL Database Engine, version: 1.8.0
INFO - JDBC driver: HSQL Database Engine Driver, version: 1.8.0
INFO - Using dialect: org.hibernate.dialect.HSQLDialect
INFO - Transaction strategy:
org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
INFO - instantiating TransactionManagerLookup:
org.apache.openejb.hibernate.TransactionManagerLookup
INFO - instantiated TransactionManagerLookup
INFO - Automatic flush during beforeCompletion(): disabled
INFO - Automatic session close at end of transaction: disabled
INFO - JDBC batch size: 15
INFO - JDBC batch updates for versioned data: disabled
INFO - Scrollable result sets: enabled
INFO - JDBC3 getGeneratedKeys(): disabled
INFO - Connection release mode: auto
INFO - Default batch fetch size: 1
INFO - Generate SQL with comments: disabled
INFO - Order SQL updates by primary key: disabled
INFO - Order SQL inserts for batching: disabled
INFO - Query translator:
org.hibernate.hql.ast.ASTQueryTranslatorFactory
INFO - Using ASTQueryTranslatorFactory
INFO - Query language substitutions: {}
INFO - JPA-QL strict compliance: enabled
INFO - Second-level cache: enabled
INFO - Query cache: disabled
INFO - Cache provider: org.hibernate.cache.NoCacheProvider
INFO - Optimize cache for minimal puts: disabled
INFO - Structured second-level cache entries: disabled
INFO - Statistics: disabled
INFO - Deleted entity synthetic identifier rollback: disabled
INFO - Default entity-mode: pojo
INFO - Named query checking : enabled
INFO - building session factory
INFO - Not binding factory to JNDI, no JNDI name configured
INFO - Running hbm2ddl schema export
INFO - exporting generated schema to database
INFO - schema export complete
INFO - Jndi(name=ItemDAOHibernateLocal) -->
Ejb(deployment-id=ItemDAOHibernate)
INFO - Jndi(name=ItemServiceLocal) --> Ejb(deployment-
id=ItemService)
INFO - Undeploying app:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes
INFO - closing
ERROR - Application could not be deployed:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes
org.apache.openejb.OpenEJBException: Creating application failed:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes:
Error deploying 'TimerJob'. Exception: class
org.apache.openejb.OpenEJBException: Deployment 'TimerJob' has
message
listener interface org.quartz.Job but this MDB container only
supports
interface javax.jms.MessageListener: Deployment 'TimerJob' has
message
listener interface org.quartz.Job but this MDB container only
supports
interface javax.jms.MessageListener
at
org
.apache
.openejb
.assembler.classic.Assembler.createApplication(Assembler.java:601)
at
org
.apache
.openejb
.assembler.classic.Assembler.buildContainerSystem(Assembler.java:
342)
at
org
.apache.openejb.assembler.classic.Assembler.build(Assembler.java:
259)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:149)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:291)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:270)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect
.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org
.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:
36)
at
org
.apache
.openejb
.client
.LocalInitialContextFactory.init(LocalInitialContextFactory.java:
63)
at
org
.apache
.openejb
.client
.LocalInitialContextFactory.init(LocalInitialContextFactory.java:
51)
at
org
.apache
.openejb
.client
.LocalInitialContextFactory
.getInitialContext(LocalInitialContextFactory.java:40)
at
javax
.naming.spi.NamingManager.getInitialContext(NamingManager.java:
667)
at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:
247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at
com
.example.openejb.OpenEjbTest.setInitialContext(OpenEjbTest.java:
64)
at
com
.example
.dao
.hibernate
.ItemDAOHibernateTest.setUpBeforeClass(ItemDAOHibernateTest.java:
22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect
.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org
.junit.internal.runners.ClassRoadie.runBefores(ClassRoadie.java:
49)
at
org
.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:
36)
at
org
.junit
.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:
42)
at
org
.eclipse
.jdt
.internal
.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:
45)
at
org
.eclipse
.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
38)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:
386)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
196)
Caused by: org.apache.openejb.OpenEJBException: Error deploying
'TimerJob'.
Exception: class org.apache.openejb.OpenEJBException: Deployment
'TimerJob'
has message listener interface org.quartz.Job but this MDB
container
only
supports interface javax.jms.MessageListener: Deployment
'TimerJob'
has
message listener interface org.quartz.Job but this MDB container
only
supports interface javax.jms.MessageListener
at
org
.apache
.openejb
.assembler.classic.EjbJarBuilder.deploy(EjbJarBuilder.java:
75)
at
org
.apache
.openejb
.assembler.classic.Assembler.createApplication(Assembler.java:548)
... 32 more
Caused by: org.apache.openejb.OpenEJBException: Deployment
'TimerJob' has
message listener interface org.quartz.Job but this MDB container
only
supports interface javax.jms.MessageListener
at
org.apache.openejb.core.mdb.MdbContainer.deploy(MdbContainer.java:
119)
at
org
.apache
.openejb
.assembler.classic.EjbJarBuilder.deploy(EjbJarBuilder.java:
73)
... 33 more
David Blevins wrote:
Ok. On second thought, try removing these two parameters:
properties.setProperty("Default MDB
Container.MessageListenerInterface",
"org.quartz.Job");
properties.setProperty("Default MDB
Container.ActivationSpecClass",
"org
.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec");
We should be auto-creating an MDB container and ResourceAdapter
specifically for the in-bound connector. What happened here is
that
the properties for the Default MDB Container where changed for
Quartz
(listener interface and activationspec) but it's still pointing
to
the
ActiveMQ ResourceAdapter. If you delete these two lines then
we'll
safely determine that there is no MDB container configured to
handle
the MessageListenerInterface of your MDB and one will be created
using
your Quartz ResourceAdapter.
-David
On Jul 20, 2008, at 1:55 PM, endium wrote:
ERROR - Application could not be deployed:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes
org.apache.openejb.OpenEJBException: Creating application
failed:
/Users/Hoshi/Documents/Programming/Hibernate/DaoProjectOpenEjb/
target/classes:
Error deploying 'TimerJob'. Exception: class
org.apache.openejb.OpenEJBException:
javax.resource.NotSupportedException:
That type of ActicationSpec not supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec:
That
type of
ActicationSpec not supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec:
javax.resource.NotSupportedException: That type of
ActicationSpec
not
supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec:
That
type of
ActicationSpec not supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec
at
org
.apache
.openejb
.assembler.classic.Assembler.createApplication(Assembler.java:
601)
at
org
.apache
.openejb
.assembler
.classic.Assembler.buildContainerSystem(Assembler.java:
342)
at
org
.apache
.openejb.assembler.classic.Assembler.build(Assembler.java:
259)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:149)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:291)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:270)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect
.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org
.apache
.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:
36)
at
org
.apache
.openejb
.client
.LocalInitialContextFactory
.init(LocalInitialContextFactory.java:
63)
at
org
.apache
.openejb
.client
.LocalInitialContextFactory
.init(LocalInitialContextFactory.java:
51)
at
org
.apache
.openejb
.client
.LocalInitialContextFactory
.getInitialContext(LocalInitialContextFactory.java:40)
at
javax
.naming.spi.NamingManager.getInitialContext(NamingManager.java:
667)
at
javax
.naming.InitialContext.getDefaultInitCtx(InitialContext.java:
247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at
com
.example.openejb.OpenEjbTest.setInitialContext(OpenEjbTest.java:
63)
at
com
.example
.service.ItemServiceTest.setUpBeforeClass(ItemServiceTest.java:
25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect
.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org
.junit.internal.runners.ClassRoadie.runBefores(ClassRoadie.java:
49)
at
org
.junit
.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:
36)
at
org
.junit
.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:
42)
at
org
.eclipse
.jdt
.internal
.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:
45)
at
org
.eclipse
.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
38)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
460)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
673)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:
386)
at
org
.eclipse
.jdt
.internal
.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
196)
Caused by: org.apache.openejb.OpenEJBException: Error deploying
'TimerJob'.
Exception: class org.apache.openejb.OpenEJBException:
javax.resource.NotSupportedException: That type of
ActicationSpec
not
supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec:
That
type of
ActicationSpec not supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec:
javax.resource.NotSupportedException: That type of
ActicationSpec
not
supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec:
That
type of
ActicationSpec not supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec
at
org
.apache
.openejb
.assembler.classic.EjbJarBuilder.deploy(EjbJarBuilder.java:
75)
at
org
.apache
.openejb
.assembler.classic.Assembler.createApplication(Assembler.java:
548)
... 32 more
Caused by: org.apache.openejb.OpenEJBException:
javax.resource.NotSupportedException: That type of
ActicationSpec
not
supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec:
That
type of
ActicationSpec not supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec
at
org
.apache.openejb.core.mdb.MdbContainer.deploy(MdbContainer.java:
146)
at
org
.apache
.openejb
.assembler.classic.EjbJarBuilder.deploy(EjbJarBuilder.java:
73)
... 33 more
Caused by: javax.resource.NotSupportedException: That type of
ActicationSpec
not supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec
at
org
.apache
.activemq
.ra
.ActiveMQResourceAdapter
.endpointActivation(ActiveMQResourceAdapter.java:217)
at
org
.apache.openejb.core.mdb.MdbContainer.deploy(MdbContainer.java:
139)
... 34 more
David Blevins wrote:
On Jul 20, 2008, at 10:05 AM, endium wrote:
I'm using maven. Do I need the openejb-core or openejb-
standalone?
Should be just openejb-core. The openejb-standalone pom has a
handful
of client/server related dependencies which you don't need for
unit
testing.
Using
openejb-core, it seems to be configuring and loading the rar,
but
later it's
giving a ClassNotFoundException for the quartz activation
spec:
java.lang.ClassNotFoundException:
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec
I'm setting my properties like this:
properties.setProperty("Default MDB
Container.MessageListenerInterface",
"org.quartz.Job");
properties.setProperty("Default MDB
Container.ActivationSpecClass",
"org
.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec");
That looks right.
I tried manually adding the activation spec class to the
build
path
and I
got this:
javax.resource.NotSupportedException: That type of
ActicationSpec
not
supported: class
org.jboss.resource.adapter.quartz.inflow.QuartzActivationSpec
Can't seem to find any code that throws that exception. Can
you
post
the stack trace?
-David
David Blevins wrote:
On Jul 18, 2008, at 5:09 PM, endium wrote:
Thanks for your response. Right now I am using openejb
embedded
for
unit
testing. Is there a way to configure the inbound resource
adapter
without
deploying an ear?
In that case, give our latest snapshots a try. We added
support to
basically say "treat my classpath as an ear", in which case
you'd
still get the same effect I described.
If you're using maven, just update your openejb version to
3.1-
SNAPSHOT. If you're using a server distro, this should work:
http://people.apache.org/repo/m2-snapshot-repository/org/apache/openejb/openejb-standalone/3.1-SNAPSHOT/openejb-standalone-3.1-20080719.020443-5.zip
-David
David Blevins wrote:
On Jul 18, 2008, at 7:50 AM, endium wrote:
I am using JBoss' Quartz integration on one of my
projects:
http://wiki.jboss.org/wiki/QuartzSchedulerIntegration
This works fine in a JBoss environment, however I haven't
been
able to
figure out how to configure openejb to replicate this
behavior. Is
it
possible to use openejb to use inbound resource adapters?
We definitely do support inbound resource adapters. If you
package
that rar file and your ejb jar file into an ear and deploy
it,
everything should get auto configured and created for you
and
your
MDBs hooked up to the resource adapter.
-David
--
View this message in context:
http://www.nabble.com/need-help-getting-quartz-ra.rar-file-to-deploy-tp18531000p18539712.html
Sent from the OpenEJB User mailing list archive at
Nabble.com.
--
View this message in context:
http://www.nabble.com/need-help-getting-quartz-ra.rar-file-to-deploy-tp18531000p18556369.html
Sent from the OpenEJB User mailing list archive at Nabble.com.
--
View this message in context:
http://www.nabble.com/need-help-getting-quartz-ra.rar-file-to-deploy-tp18531000p18558694.html
Sent from the OpenEJB User mailing list archive at Nabble.com.
--
View this message in context:
http://www.nabble.com/need-help-getting-quartz-ra.rar-file-to-deploy-tp18531000p18560125.html
Sent from the OpenEJB User mailing list archive at Nabble.com.