I am trying to use the Memory context to bind an object during init time
so that we can retrieve it later. I am having issues in that it is claming
that the name I just bound is not bound. What is happening is that it is
not looking in the subcontexts:
------------------------ Code Snippet ------------------------------------
private static AxisClient getEngine() {
String provider = System.getProperty("java.naming.factory.initial", null);
Context initCtx = null;
if (null == provider) {
System.setProperty("java.naming.factory.initial",
"org.apache.avalon.excalibur.naming.memory.MemoryInitialContextFactory");
try {
initCtx = new InitialContext();
initCtx.createSubcontext("java:comp").createSubcontext("env").createSubcontext("axis");
} catch (Exception e) {
e.printStackTrace(System.err);
throw new RuntimeException("Could not get client instance: " +
e.getMessage());
}
}
AxisClient client = null;
try {
if (initCtx == null) {
initCtx = new InitialContext();
}
client = (AxisClient) initCtx.lookup("java:comp/env/axis/Client");
} catch (Exception e) {
// it wasn't there, so we bind the factory
try {
if (initCtx == null) {
initCtx = new InitialContext();
}
Context context = (Context) new
InitialContext().lookup("java:comp/env");
try {
context = (Context) context.lookup("axis");
} catch (Exception ne) {
context = context.createSubcontext("axis");
}
context.bind("java:comp/env/axis/Client", new AxisEngineFactory());
client = (AxisClient) initCtx.lookup("java:comp/env/axis/Client");
} catch (Exception ne) {
ne.printStackTrace(System.err);
throw new RuntimeException("Could not get client instance: " +
e.getMessage());
}
}
if (null == client) {
throw new RuntimeException("Could not get client instance");
}
return client;
}
--------------------------------- End Snippet ---------------------------------
The stack trace I get is:
javax.naming.NameNotFoundException: java:comp
at
org.apache.avalon.excalibur.naming.memory.MemoryContext.doLocalLookup(MemoryContext.java:89)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.localLookup(AbstractLocalContext.java:309)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.lookupSubContext(AbstractLocalContext.java:348)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.lookup(AbstractLocalContext.java:294)
at
org.apache.avalon.excalibur.naming.AbstractContext.lookup(AbstractContext.java:246)
at javax.naming.InitialContext.lookup(InitialContext.java:350)
at org.apache.axis.client.ServiceClient.getEngine(ServiceClient.java:160)
at org.apache.axis.client.ServiceClient.<init>(ServiceClient.java:302)
at test.encoding.TestArrayListConversions.init(TestArrayListConversions.java:55)
at test.encoding.TestArrayListConversions.<init>(TestArrayListConversions.java:26)
at java.lang.reflect.Constructor.newInstance(Native Method)
at junit.framework.TestSuite.addTestMethod(TestSuite.java:102)
at junit.framework.TestSuite.<init>(TestSuite.java:66)
at junit.framework.TestSuite.addTestSuite(TestSuite.java:90)
at test.encoding.PackageTests.suite(PackageTests.java:31)
at java.lang.reflect.Method.invoke(Native Method)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.<init>(JUnitTestRunner.java:191)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.<init>(JUnitTestRunner.java:156)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:407)
javax.naming.NameNotFoundException: java:comp
at
org.apache.avalon.excalibur.naming.memory.MemoryContext.doLocalLookup(MemoryContext.java:89)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.localLookup(AbstractLocalContext.java:309)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.lookupSubContext(AbstractLocalContext.java:348)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.lookup(AbstractLocalContext.java:294)
at
org.apache.avalon.excalibur.naming.AbstractContext.lookup(AbstractContext.java:246)
at javax.naming.InitialContext.lookup(InitialContext.java:350)
at org.apache.axis.client.ServiceClient.getEngine(ServiceClient.java:160)
at org.apache.axis.client.ServiceClient.<init>(ServiceClient.java:302)
at test.encoding.TestArrayListConversions.init(TestArrayListConversions.java:55)
at test.encoding.TestArrayListConversions.<init>(TestArrayListConversions.java:26)
at java.lang.reflect.Constructor.newInstance(Native Method)
at junit.framework.TestSuite.addTestMethod(TestSuite.java:102)
at junit.framework.TestSuite.<init>(TestSuite.java:66)
at junit.framework.TestSuite.addTestSuite(TestSuite.java:90)
at test.encoding.PackageTests.suite(PackageTests.java:31)
at java.lang.reflect.Method.invoke(Native Method)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.<init>(JUnitTestRunner.java:191)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.<init>(JUnitTestRunner.java:156)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:407)
javax.naming.NameNotFoundException: java:comp
at
org.apache.avalon.excalibur.naming.memory.MemoryContext.doLocalLookup(MemoryContext.java:89)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.localLookup(AbstractLocalContext.java:309)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.lookupSubContext(AbstractLocalContext.java:348)
at
org.apache.avalon.excalibur.naming.AbstractLocalContext.lookup(AbstractLocalContext.java:294)
at
org.apache.avalon.excalibur.naming.AbstractContext.lookup(AbstractContext.java:246)
at javax.naming.InitialContext.lookup(InitialContext.java:350)
at org.apache.axis.client.ServiceClient.getEngine(ServiceClient.java:160)
at org.apache.axis.client.ServiceClient.<init>(ServiceClient.java:302)
at test.encoding.TestArrayListConversions.init(TestArrayListConversions.java:55)
at test.encoding.TestArrayListConversions.<init>(TestArrayListConversions.java:26)
at java.lang.reflect.Constructor.newInstance(Native Method)
at junit.framework.TestSuite.addTestMethod(TestSuite.java:102)
at junit.framework.TestSuite.<init>(TestSuite.java:66)
at junit.framework.TestSuite.addTestSuite(TestSuite.java:90)
at test.encoding.PackageTests.suite(PackageTests.java:31)
at java.lang.reflect.Method.invoke(Native Method)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.<init>(JUnitTestRunner.java:191)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.<init>(JUnitTestRunner.java:156)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:407)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]