天天看點

再續java調用動态庫so

過去有記錄過:http://blog.csdn.net/wenjjing2lianee/archive/2010/04/28/5540053.aspx

上次寫那篇文章是把Tomcat調用so動态庫給解決了,本認為應該都OK了,沒想到問題又來了,有公司偏偏不是用Tomat,而是WebSphere,好好的程式通過Tomcat能成功,而在WebSphere就是狂報錯.錯誤如下:

Caused by: java.lang.UnsatisfiedLinkError: com/wd/XXXXXXXXXXXXXXX([B)[B(後面還有兩個這東西)

 at com.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 at com.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 at com. at com.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(LoginAction.java:81)

 ... 104 more

這個錯,一看就知道,動态庫so沒加載進來啊,那邊公司也在網上查了看了很多資料,網上很多的WebSphere加載動态庫都試過了就是無法解決這個問題,整整弄了兩天,終于找到了原因,原來是動态庫so的問題。

對方用的是WebSphere7.0, WebSphere是IBM旗下的,并且自帶了JDK,問題就出在Websphere自帶的JDK上,如果是一個簡單的java程式不須要調用動态庫,在SUN JDK 編譯後,放到IBM JDK中運作應該沒問題,但如果是運用sun jdk頭檔案編譯的動态庫,放到IBM中去調用就不行了,一直報錯也就是這個原因造成的,剛開始我們的動态庫都是通過sun jdk頭檔案編譯的,是以就算放入了WebSphere中容器也不會加載進來,後來沒法子就自己裝環境測試,自己裝WebSphere環境時才認識到這個問題,改用IBM jdk頭檔案重新編譯了so,才解決了問題.

裝WebSphere環境發費了很長的時間,不過也學到了不少,在WebSphere下直接将so放到安裝目錄的bin/下容器就會自動加載.

提供幾個關于WebSphere的連接配接

在 UNIX 和 Linux 系統上安裝和配置 WebSphere Application Server

websphere7.0安裝界面亂碼