我的JSP程序设置为在HP-UX下的Websphere上运行。
我有一些.jar文件和一个.so文件,其中包含我的程序需要运行的类。
将我的.jar文件放入\MyProgram\WEB-INF\lib\
文件夹,我就可以使用。{/ p>
但是,我看到UnsatisfiedLinkError
是由我的lib.so文件无法识别引起的。
我找到的方法之一是:
在管理控制台中,转到环境 - >共享库 - >新
将.jar文件位置输入Classpath,将.so文件位置输入Native Library Path
在管理控制台中,转到应用程序 - >申请类型 - >企业应用程序
在MyProgram下 - >共享库参考 - >共享库映射,通过将库从“可用”移动到“选定”来将库分配给程序。
我有两个问题:
我可以从我的程序的\lib\
文件夹中获取.jar文件和.so文件吗?
如果我不能,是否可以从我的应用程序文件夹中列出类路径和本机库路径?使用websphere变量目录%MYPROGRAM%\WEB-INF\lib\lib.so
上传我的application.war,而不是将文件放在具有绝对路径C:\IBM\WebSphere\AppServer\bin\lib.so
的物理服务器中?
[EDIT-01]进一步详情如下:
收到错误:“错误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文件,所以我做了accordingly。路径集是我在Websphere中指定的绝对路径。这与我的第二个问题有关。
第一个问题是我真的想知道我是否可以将这些文件放入myProgram.war并从那里运行而不是使用WinSCP访问服务器并将文件放在那里以获取绝对路径引用。也许指定上面提到的文件位于我的程序中,而不是\ WEB-INF \ lib \。这是因为只有我的这个程序才能访问LunaSA HSM。
** PS。我尝试了两种方法,但仍然失败了。叹息。
答案 0 :(得分:1)
对于共享库实现,我相信您只在本机库路径中指定目录,而不是文件名。也就是说,使用您当前的文件位置/opt/apps/WebSphere/AppServer/bin
。
另一方面,我希望该目录已经在WebSphere的WAS_LIBPATH
和SHLIB_PATH
中,因此根本不需要列出它。 (检查$WAS_HOME/bin/setupCmdLine.sh
。)
但是,我认为最好为你的luna文件创建一个子目录,并将共享库本机库路径指向它。