How to connect db in my toplink project?
165103Nov 15 2004 — edited Jun 9 2006In my examples, when I want to get the session using
"DatabaseSession databaseSession = (DatabaseSession )SessionManager.getManager().getSession("MySessionName");"
statment, the system report the following error:
Local Exception Stack:
Exception [TOPLINK-7060] (OracleAS TopLink - 10g (9.0.4) (Build 031126)): oracle.toplink.exceptions.ValidationException
Exception Description: Cannot acquire data source [TopLink].
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.TopLinkException.<init>(TopLinkException.java:48)
at oracle.toplink.exceptions.ValidationException.<init>(ValidationException.java:148)
at oracle.toplink.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:162)
at oracle.toplink.jndi.JNDIConnector.connect(JNDIConnector.java:90)
at oracle.toplink.sessions.DatabaseLogin.connect(DatabaseLogin.java:218)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(DatabaseAccessor.java:396)
at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(DatabaseAccessor.java:421)
at oracle.toplink.threetier.ConnectionPool.buildConnection(ConnectionPool.java:89)
at oracle.toplink.threetier.ConnectionPool.startUp(ConnectionPool.java:328)
at oracle.toplink.threetier.ServerSession.connect(ServerSession.java:447)
at oracle.toplink.publicinterface.DatabaseSession.login(DatabaseSession.java:520)
at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:250)
at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:192)
at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:149)
at mypackage1.TestMain.main(TestMain.java:22)
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:640)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:340)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at oracle.toplink.jndi.JNDIConnector.connect(JNDIConnector.java:87)
... 11 more
the following is my session.xml context
<?xml version = '1.0' encoding = 'UTF-8'?>
<!DOCTYPE toplink-configuration PUBLIC "-//Oracle Corp.//DTD TopLink Sessions 9.0.4//EN" "sessions_9_0_4.dtd">
<toplink-configuration>
<session>
<name>MySessionName</name>
<project-xml>toplink-deployment-descriptor.xml</project-xml>
<session-type>
<server-session/>
</session-type>
<login>
<driver-class>sun.jdbc.odbc.JdbcOdbcDriver</driver-class>
<datasource>TopLink</datasource>
<platform-class>oracle.toplink.internal.databaseaccess.SQLServerPlatform</platform-class>
<user-name>sa</user-name>
<uses-native-sequencing>true</uses-native-sequencing>
</login>
</session>
</toplink-configuration>
1, The "TopLink" is my datasource to connect the sql server.
2, In JDeveloper 10g's connections navigator, I can use the "TopLink" to connect my database.
3, My program is non-server mode
Who can help me to solve the error?