Java 在自定义资源适配器上部署MDB时出现NoInitialContextException

Java 在自定义资源适配器上部署MDB时出现NoInitialContextException,java,exception,jboss5.x,message-driven-bean,initial-context,Java,Exception,Jboss5.x,Message Driven Bean,Initial Context,我开发了一个资源适配器,我想在我的应用程序ear中使用,部署在JBoss5.1中。在处理注释和xml文件之后,我提出了以下设置 ejbjar.xml 我还尝试了与xml文件相反的大多数注释组合,但是,我总是得到相同的结果: 所有bean都部署得很好,还有MyUpdateServicebean。资源适配器向my bean发送消息,my bean可以很好地处理它 虽然我可以像这样使用适配器,但我确实在日志中得到了以下异常,我真的很想消除它: 2011-02-23 11:15:54,640 WARN

我开发了一个资源适配器,我想在我的应用程序ear中使用,部署在JBoss5.1中。在处理注释和xml文件之后,我提出了以下设置

ejbjar.xml

我还尝试了与xml文件相反的大多数注释组合,但是,我总是得到相同的结果: 所有bean都部署得很好,还有
MyUpdateService
bean。资源适配器向my bean发送消息,my bean可以很好地处理它

虽然我可以像这样使用适配器,但我确实在日志中得到了以下异常,我真的很想消除它:

2011-02-23 11:15:54,640 WARN  [org.jboss.resource.adapter.jms.inflow.JmsActivation] (WorkManager(2)-75) Failure in jms activation org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@26af5ca9(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@157024fc destination=/topic/MyTopic destinationType=javax.jms.Topic tx=false ack=Auto-acknowledge durable=false reconnect=10 provider=java:/DefaultJMSProvider user=null maxMessages=1 minSession=1 maxSession=1 keepAlive=60000 useDLQ=true DLQHandler=org.jboss.resource.adapter.jms.inflow.dlq.GenericDLQHandler DLQJndiName=queue/DLQ DLQUser=null DLQMaxResent=0)
javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.IllegalStateException: BaseClassLoader@26780d3c{vfszip:/opt/jboss-5.1.0.GA/server/default/deploy/myear.ear/} classLoader is not connected to a domain (probably undeployed?) for class org.jnp.interfaces.NamingContextFactory]
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:175)
        at org.jboss.util.naming.Util.lookup(Util.java:179)
        at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupJMSProviderAdapter(JmsActivation.java:397)
        at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:346)
        at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:729)
        at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
        at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalStateException: BaseClassLoader@26780d3c{vfszip:/opt/jboss-5.1.0.GA/server/default/deploy/myear.ear/} classLoader is not connected to a domain (probably undeployed?) for class org.jnp.interfaces.NamingContextFactory
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:793)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
        ... 12 more
2011-02-23 11:15:54640警告[org.jboss.resource.adapter.jms.inflow.JmsActivation](WorkManager(2)-75)jms激活org.jboss.resource.adapter.jms.inflow失败。JmsActivationSpec@26af5ca9(ra=org.jboss.resource.adapter.jms。JmsResourceAdapter@157024fcdestination=/topic/MyTopic destinationType=javax.jms.topic tx=false-ack=Auto-acknowledge-dustable=false-reconnect=10 provider=java:/DefaultJMSProvider-user=null-maxMessages=1分钟会话=1 maxSession=1 keepAlive=60000 useDLQ=true-DLQHandler=org.jboss.resource.adapter.jms.inflow.dlq.genricDLQHandler DLQJndiName=queue/DLQ DLQUser=null DLQMAXRENT=0)
javax.naming.NoInitialContextException:无法实例化类:org.jnp.interfaces.NamingContextFactory[根异常为java.lang.IllegalStateException:BaseClassLoader@26780d3c{vfszip:/opt/jboss-5.1.0.GA/server/default/deploy/myear.ear/}classLoader未连接到域(可能未部署?)对于类org.jnp.interfaces.NamingContextFactory]
位于javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
位于javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
位于javax.naming.InitialContext.init(InitialContext.java:223)
位于javax.naming.InitialContext。(InitialContext.java:175)
位于org.jboss.util.naming.util.lookup(util.java:179)
位于org.jboss.resource.adapter.jms.inflow.JmsActivation.setupJMSProviderAdapter(JmsActivation.java:397)
位于org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:346)
位于org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:729)
位于org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
位于org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)
原因:java.lang.IllegalStateException:BaseClassLoader@26780d3c{vfszip:/opt/jboss-5.1.0.GA/server/default/deploy/myear.ear/}classLoader未连接到类org.jnp.interfaces.NamingContextFactory的域(可能未部署?)
位于org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:793)
位于org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:248)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:247)
位于com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
位于javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
…还有12个
有什么想法吗

干杯, 切

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE jboss PUBLIC
          "-//JBoss//DTD JBOSS 4.0//EN"
          "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
<jboss>
    <enterprise-beans>
        <message-driven>
            <ejb-name>MyUpdateService</ejb-name>
            <activation-config>
                <activation-config-property>
                    <activation-config-property-name>parameter1</activation-config-property-name>
                    <activation-config-property-value>value1</activation-config-property-value>
                </activation-config-property>

                <activation-config-property>
                    <activation-config-property-name>parameter2</activation-config-property-name>
                    <activation-config-property-value>value2</activation-config-property-value>
                </activation-config-property>
            </activation-config>
            <resource-adapter-name>myear.ear#adaptor.rar</resource-adapter-name>
            <depends>jboss.jca:service=RARDeployment,name='myear.ear#adaptor.rar'</depends>
        </message-driven>
    </enterprise-beans>
</jboss>
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class EuronextUpdateService implements MulticastListener, MessageDrivenBean  {
   [snip]
}
2011-02-23 11:15:54,640 WARN  [org.jboss.resource.adapter.jms.inflow.JmsActivation] (WorkManager(2)-75) Failure in jms activation org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@26af5ca9(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@157024fc destination=/topic/MyTopic destinationType=javax.jms.Topic tx=false ack=Auto-acknowledge durable=false reconnect=10 provider=java:/DefaultJMSProvider user=null maxMessages=1 minSession=1 maxSession=1 keepAlive=60000 useDLQ=true DLQHandler=org.jboss.resource.adapter.jms.inflow.dlq.GenericDLQHandler DLQJndiName=queue/DLQ DLQUser=null DLQMaxResent=0)
javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.IllegalStateException: BaseClassLoader@26780d3c{vfszip:/opt/jboss-5.1.0.GA/server/default/deploy/myear.ear/} classLoader is not connected to a domain (probably undeployed?) for class org.jnp.interfaces.NamingContextFactory]
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:175)
        at org.jboss.util.naming.Util.lookup(Util.java:179)
        at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupJMSProviderAdapter(JmsActivation.java:397)
        at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:346)
        at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:729)
        at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
        at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalStateException: BaseClassLoader@26780d3c{vfszip:/opt/jboss-5.1.0.GA/server/default/deploy/myear.ear/} classLoader is not connected to a domain (probably undeployed?) for class org.jnp.interfaces.NamingContextFactory
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:793)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
        ... 12 more