我正在使用 netbeans 6.8 和 glassfish v3,并制作了一个简单的 jms 应用程序来工作。我懂了:
com.sun.enterprise.container.common.spi.util.InjectionException:
Exception attempting to inject Unresolved Message-Destination-Ref
jms/myQueue@java.lang.String@null into class enterpriseapplication4.Main
代码:
public class Main {
@Resource(name = "jms/myQueue")
private static Topic myQueue;
@Resource(name = "jms/myFactory")
private static ConnectionFactory myFactory;
...
// the rest is just boiler plate created by netbeans
}
在我的 Glassfish v3 管理控制台中,我有 jms/myFactory 作为我的 ConnectionFactory 和 jms/myQueue 作为我的目标资源。
我错过了什么?
全栈:
警告:enterprise.deployment.backend.invalidDescriptorMappingFailure com.sun.enterprise.container.common.spi.util.InjectionException:尝试将 Unresolved Message-Destination-Ref jms/myQueue@java.lang.String@null 注入到类 enterpriseapplication4.Main 中的异常 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:614) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:384) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:210) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:202) 在 org.glassfish.appclient.client.acc.AppClientContainer$ClientMainClassSetting.getClientMainClass(AppClientContainer.java:599) 在 org.glassfish.appclient.client.acc.AppClientContainer.getMainMethod(AppClientContainer.java:498) 在 org.glassfish.appclient.client.acc.AppClientContainer.completePreparation(AppClientContainer.java:397) 在 org.glassfish.appclient.client.acc.AppClientContainer.prepare(AppClientContainer.java:311) 在 org.glassfish.appclient.client.AppClientFacade.prepareACC(AppClientFacade.java:264) 在 org.glassfish.appclient.client.acc.agent.AppClientContainerAgent.premain(AppClientContainerAgent.java:75) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:323) 在 sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338) 原因:javax.naming.NamingException:在 SerialContext targetHost=localhost,targetPort=3700 中查找“java:comp/env/jms/myQueue”失败 [根异常是 javax.naming.NameNotFoundException:没有对象绑定到 java:comp/ env/jms/myQueue [根异常是 java.lang.NullPointerException]] 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:442) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:513) ... 15 更多 原因:javax.naming.NameNotFoundException:没有对象绑定到 java:comp/env/jms/myQueue [根异常是 java.lang.NullPointerException] 在 com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:218) 在 com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:428) ... 17 更多 引起:java.lang.NullPointerException 在 javax.naming.InitialContext.getURLScheme(InitialContext.java:269) 在 javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:318) 在 javax.naming.InitialContext.lookup(InitialContext.java:392) 在 com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:75) 在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:688) 在 com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:657) 在 com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:148) ... 18 更多
问候