facebook

Oracle Connection error: no ocijdbc9 in java.library.path

  1. MyEclipse Archived
  2.  > 
  3. Database Tools (DB Explorer, Hibernate, etc.)
Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #234130 Reply

    I’m a newbie in developing J2EE Applications.
    However I decided to implement a small Webapplication to list some rows of my Oracle 9i Database (9.2.0.6) with Hibernate.

    My configuration:
    WinXP
    Tomcat 5.0.28
    Eclipse 3.1
    MyEclipse 4.0 M2
    ODBC-Driver for Oracle 9R2

    Wheneve accessing my jsp a exception is raised:

    java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path

    the full path:

    javax.servlet.ServletException: no ocijdbc9 in java.library.path
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.AddUser_jsp._jspService(AddUser_jsp.java:191)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    root cause

    java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path
    java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)
    java.lang.Runtime.loadLibrary0(Runtime.java:788)
    java.lang.System.loadLibrary(System.java:834)
    oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:262)
    oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346)
    oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
    oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
    java.sql.DriverManager.getConnection(DriverManager.java:512)
    java.sql.DriverManager.getConnection(DriverManager.java:140)
    net.sf.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:101)
    net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
    net.sf.hibernate.cfg.Configuration.buildSettings(Configuration.java:1172)
    net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:803)
    com.roche.hibernate.SessionFactory.currentSession(SessionFactory.java:50)
    com.roche.hibernate.BearbeiterService.getBearbeiterList(BearbeiterService.java:165)
    org.apache.jsp.AddUser_jsp._jspService(AddUser_jsp.java:117)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    my hibernate.xml looks like this:

    […]
    <hibernate-configuration>

    <session-factory>

    <!– mapping files –>
    <property name=”myeclipse.connection.profile”>MeCIS2</property>
    <property name=”connection.url”>jdbc:oracle:oci:@mecis2</property>
    <property name=”connection.username”>burkert</property>
    <property name=”connection.password”>******</property>
    <property name=”connection.driver_class”>oracle.jdbc.driver.OracleDriver</property>
    <property name=”dialect”>net.sf.hibernate.dialect.Oracle9Dialect</property>
    <mapping resource=”com/roche/hibernate/Bearbeiter.hbm.xml” />

    </session-factory>

    </hibernate-configuration>

    The ocijdbc9 location is referenced by my CLASSPATH, the JDBC/lib is refereced with my PATH-environment.

    Anybody an idea whats the problem?

    greetings
    Martin

    #234160 Reply

    Riyad Kalla
    Member

    Martin,
    The OCI driver has a native DLL element to it, you need to find where it lives and then add that dir to your Window > Prefs > MyEclipse > App Server > Oracle 9 > Paths > “Append to Library Path” settings so the driver can find it when run from ME.

    #234355 Reply

    @support-rkalla wrote:

    Martin,
    The OCI driver has a native DLL element to it, you need to find where it lives and then add that dir to your Window > Prefs > MyEclipse > App Server > Oracle 9 > Paths > “Append to Library Path” settings so the driver can find it when run from ME.

    Thx for the answer – sorry for my delay – had some holidays. 8)

    The native DLLis named ocijdbc9.dll and “lives” in my Oracle_home\bin directory. (I think, thats the native DLL element corresponding to the ojdbc14.jar library I included to my workspace [of course the project compiles without errors])

    I added this DLL to my Application Server (Tomcat 5, not Oracle 9iAS) [Window > Pref > ME > App S. > Tomcat5 > Paths > Append to libary path => add Dir c:\programs files\oracle\db9i\bin]

    After Adding this path, it is not possible to start the tomcat again! 🙁

    Error messages (2 boxes):
    Java Virtual Machine Launcher: “Could not find the main class. Programm will exit.”

    Error starting Tomcat: “A configuration error occurred during startup. Please verify the preference field with the prompt: java.lang.NoClassDefFound: Files\oracle\db9i\bin Exception in thread “main” ”

    greetings Martin

    #234366 Reply

    Riyad Kalla
    Member

    The problem is that you are adding dirs to your library path that contain a space in the path name (notice how it thinks the class name is Files\oracle\etc.etc.?). The workaround for now is to reinstall to a directory withour spaces, we have fixed this in 4.0 M3 which will be out within a week, so the alternative is to wait for that release.

    #234499 Reply

    Thx for the answer.

    That was the problem. But it is not necessary to reinstall oracle in a different location. After copying the *.dll to c:\tmp and adding this directory to the libary path it was working. 😛

    greetings Martin

    #292717 Reply

    schanamolu
    Member

    This message has not been recovered.

    #292788 Reply

    Riyad Kalla
    Member

    This message has not been recovered.

    #292815 Reply

    schanamolu
    Member

    This message has not been recovered.

    #292816 Reply

    schanamolu
    Member

    This message has not been recovered.

    #292863 Reply

    Riyad Kalla
    Member

    This message has not been recovered.

    #293678 Reply

    schanamolu
    Member

    Kalla,

    I’m still getting the following error message. “Connections could not be acquired from the underlying database!”

    The detail exception is as follow

    “Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [null]; error code [0]; Connections could not be acquired from the underlying database!; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!”

    ApplicationContext.xml

    <property name=”jdbcUrl”>
    <value>
    jdbc:oracle:oci:@${jdbc.host}:${jdbc.port}:${jdbc.database}
    </value>
    </property>

    startup.bat

    We modified startup.bat in tomcat/bin directory


    @echo
    off
    if “%OS%” == “Windows_NT” setlocal
    rem —————————————————————————
    rem Start script for the CATALINA Server
    rem
    rem $Id: startup.bat 302918 2004-05-27 18:25:11Z yoavs $
    rem —————————————————————————

    set CATALINA_OPTS=-Djava.library.path=E:\oracle\ora92\bin

    rem Guess CATALINA_HOME if not defined
    set CURRENT_DIR=%cd%
    if not “%CATALINA_HOME%” == “” goto gotHome
    set CATALINA_HOME=%CURRENT_DIR%

    ………………………

    Enviornemnt Variable changes:

    we referenced ocijdbc9.dll library by setting path enviornment variable ORALCE_HOME/bin

    We copied ojbdc14.jar to this directory C:\tomcat\shared\lib

Viewing 11 posts - 1 through 11 (of 11 total)
Reply To: Oracle Connection error: no ocijdbc9 in java.library.path

You must be logged in to post in the forum log in