我的JSP程序设置在HP-UX上的Websphere上运行。
我有一些.jar文件和一个.so文件,其中包含程序运行所需的类。
将我的.jar文件放入\MyProgram\WEB-INF\lib\
文件夹中,我能够使某些文件正常工作。
但是,我看到了一个UnsatisfiedLinkError
,这是由于我的lib.so文件无法被识别所导致的。
我找到的其中一种方法是:
在管理控制台中,转到环境->共享库->新建
将.jar文件位置输入Classpath,将.so文件位置输入到Native Library Path中
在管理控制台中,转到应用程序->应用程序类型->企业应用程序
在MyProgram下方,转到共享库参考->共享库映射,并通过将其从“可用”移动到“已选”来为程序分配库。
我有两个问题:
我是否可以直接从我的程序的
\lib\
文件夹中让.jar文件和.so文件工作?如果不行,是否有可能从我的应用程序文件夹中列出classpath和本地库路径?例如使用一个Websphere变量目录
%MYPROGRAM%\WEB-INF\lib\lib.so
上传我的application.war,而不是将文件放在具有绝对路径C:\IBM\WebSphere\AppServer\bin\lib.so
的物理服务器上?
[编辑-01]以下是更多细节:
收到的错误:"Error 500: java.lang.UnsatisfiedLinkError: com.chrysalisits.crypto.LunaAPI.Initialize()V"
我试图让Websphere与LunaSA HSM进行交互以检索公钥/私钥。他们提供了libLunaAPI.sl、libLunaAPI.so、LunaJCASP.jar、LunaJCESP.jar给我。从IBM的Websphere V8 -> 引用 -> 类加载异常中可以看出,我需要HP-UX的*.so文件,所以我相应地做了。设置的路径为绝对路径,我已在Websphere中指定。这涉及到我的第二个问题。
第一个问题是我想知道是否可以将这些文件放入myProgram.war中并从那里运行,而不是使用WinSCP访问服务器并将文件放在绝对路径引用的位置。也许可以指定上述文件位于我的程序下的\WEB-INF\lib\中。这是因为只有我的程序将访问LunaSA HSM。
** PS. 我尝试了两种方法,但仍然失败。唉。