java.naming.factory.initial Problem
493720Aug 16 2009 — edited Aug 17 2009I have the following code which give me the following exception:
Session session = SessionManager.getManager().getDefaultSession();
[TopLink Warning]: 2009.08.17 08:57:39.578--Failed to get InitialContext for MBean registration: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
[TopLink Warning]: 2009.08.17 08:57:39.593--Failed to get InitialContext for MBean registration: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
Local Exception Stack:
Exception [TOPLINK-23004] (Oracle TopLink - 11g Release 1 (11.1.1.1.0) (Build 090527)): oracle.toplink.exceptions.TransactionException
Exception Description: Error obtaining the Transaction Manager
Internal Exception: Exception [TOPLINK-23001] (Oracle TopLink - 11g Release 1 (11.1.1.1.0) (Build 090527)): oracle.toplink.exceptions.TransactionException
Exception Description: Error looking up external Transaction resource under JNDI name [weblogic.transaction.TransactionManager]
Internal Exception: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at oracle.toplink.exceptions.TransactionException.errorObtainingTransactionManager(TransactionException.java:114)
at oracle.toplink.transaction.JTATransactionController.<init>(JTATransactionController.java:53)
at oracle.toplink.transaction.wls.WebLogicTransactionController.<init>(WebLogicTransactionController.java:16)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at oracle.toplink.internal.security.PrivilegedAccessHelper.newInstanceFromClass(PrivilegedAccessHelper.java:335)
at oracle.toplink.platform.server.ServerPlatformBase.initializeExternalTransactionController(ServerPlatformBase.java:244)
at oracle.toplink.internal.sessions.DatabaseSessionImpl.preConnectDatasource(DatabaseSessionImpl.java:634)
at oracle.toplink.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:611)
at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:467)
at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:182)
at oracle.toplink.tools.sessionmanagement.SessionManager.getDefaultSession(SessionManager.java:100)
at entities.test.InterfaceTest.test001(InterfaceTest.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at oracle.jdevimpl.junit.runner.junit3.JUnit3Testable.run(JUnit3Testable.java:30)
at oracle.jdevimpl.junit.runner.TestExecution.run(TestExecution.java:27)
at oracle.jdevimpl.junit.runner.JUnitTestRunner.main(JUnitTestRunner.java:83)
Caused by: Exception [TOPLINK-23001] (Oracle TopLink - 11g Release 1 (11.1.1.1.0) (Build 090527)): oracle.toplink.exceptions.TransactionException
Exception Description: Error looking up external Transaction resource under JNDI name [weblogic.transaction.TransactionManager]
Internal Exception: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at oracle.toplink.exceptions.TransactionException.jndiLookupException(TransactionException.java:36)
at oracle.toplink.transaction.AbstractTransactionController.jndiLookup(AbstractTransactionController.java:423)
at oracle.toplink.transaction.wls.WebLogicTransactionController.acquireTransactionManager(WebLogicTransactionController.java:24)
at oracle.toplink.transaction.JTATransactionController.<init>(JTATransactionController.java:51)
... 30 more
Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at oracle.toplink.transaction.AbstractTransactionController.jndiLookup(AbstractTransactionController.java:421)
... 32 more
May I know if there is any solution for it or does anyone solved it before yet please? Thank you.