3 Replies Latest reply on Jun 29, 2009 11:54 AM by peterj

    JBoss + Oracle InstantClient 10g - works for Tomcat, not for

    pbdavey

      I add java.library.path to my Eclipse JBoss server configuration and get this error:

      java.lang.UnsatisfiedLinkError: C:\Users\Phillip.OFFICE\dev\instantclient_10_2\ocijdbc10.dll: Can't find dependent libraries


      Any ideas about this one? This directory is in my system PATH and I have ORACLE_HOME set to this also. Again, Tomcat is perfectly happy with this environment.

        • 1. Re: JBoss + Oracle InstantClient 10g - works for Tomcat, not
          peterj

          What did you set java.library.path to? It has to be set to the full PATH because only java.library.path will be checked for DLLs and the DLLs on which they rely. If you don't want to add everything that is in PATH to java.library.path you can use the Dependency Walker (http://www.dependencywalker.com/) to determine which DLLs are required by ocijdbc10.dll.

          • 2. Re: JBoss + Oracle InstantClient 10g - works for Tomcat, not
            pbdavey

            I only added C:\Users\Phillip.OFFICE\dev\instantclient_10_2\ to java.library.path. I'm a concerned that something like dependencywalker won't show me what I need to know since Tomcat runs fine, so I believe my environment is fine, it's just something about JBoss' configuration that is messing it up.

            Another piece of info is that I don't need java.library.path set for Tomcat, it uses PATH just fine. Which I suppose points to JBoss messing with the PATH variable.

            • 3. Re: JBoss + Oracle InstantClient 10g - works for Tomcat, not
              peterj

              You java.library.path is not set correctly. As it is currently set, it will pick up ocijdbc10.dll but none of the DLLs on which it depends. Please read my previous reply again.

              If you do not pass java.library.path to JBoss AS, it too will use PATH. You will have to edit run.bat because that is where java.library.path is being set (that is because it tries to see if JBoss Native is installed).