私は 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(ネイティブメソッド) 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' の検索に失敗しました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: No object bound for 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以上
よろしく