On Oct 27, 2009, at 12:54 AM, thabach wrote:
Heya
I am investigating RAR support in OpenEJB and was playing with the
quartz-app from some earlier post (
http://www.nabble.com/need-help-getting-quartz-ra.rar-file-to-deploy-td18531000.html#a18538001
http://www.nabble.com/need-help-getting-quartz-ra.rar-file-to-deploy-td18531000.html#a18538001
).
When running a top-level mvn clean install the tests are executed
fine.
Running the quartz-beans module test from within Eclipse as a JUnit
test,
leads to a problem in matching the message listener interface of the
MDB
against the message listener interface of the automatically deployed
MdbContainer and yields this:
org.apache.openejb.OpenEJBException: Creating application failed:
classpath.ear: 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
It seems there's something about the way the Eclipse project is setup
that does not match the Maven setup. If Eclipse isn't including the
META-INF/ra.xml file in the classpath, then OpenEJB will not be able
to see and deploy the resource adapter and create the required MDB
container.
Try a little test code like this to verify your Eclipse setup:
import junit.framework.TestCase;
import java.net.URL;
public class ClasspathTest extends TestCase {
public void test() throws Exception {
URL raXml = this.getClass().getResource("META-INF/ra.xml");
assertNotNull("There is no resource adapter in the
classpath", raXml);
}
}
Hope that helps!
-David