6

我的 JSP 程序设置为在 HP-UX 下的 Websphere 上运行。

我有一些 .jar 文件和一个 .so 文件,其中包含我的程序需要运行的类。

通过将我的 .jar 文件放入\MyProgram\WEB-INF\lib\文件夹中,我能够得到一些工作。

但是,我看到UnsatisfiedLinkError这是由于我的 lib.so 文件未被识别造成的。

我发现的方法之一是:

  1. 在管理控制台中,转到环境 -> 共享库 -> 新建

  2. 在 Classpath 中输入 .jar 文件位置,在 Native Library Path 中输入 .so 文件位置

  3. 在管理控制台中,转到应用程序 -> 应用程序类型 -> 企业应用程序

  4. 在 MyProgram -> Shared library references -> Shared Library Mapping 下,通过将库从 Available 移动到 Selected 将库分配给程序。

我有两个问题:

  1. 我可以从我的程序\lib\文件夹中获取 .jar 文件和 .so 文件吗?

  2. 如果我不能,是否可以从我的应用程序文件夹中列出类路径和本机库路径?像使用 websphere 变量目录上传我的 application.war%MYPROGRAM%\WEB-INF\lib\lib.so而不是使用绝对路径将文件放在物理服务器中C:\IBM\WebSphere\AppServer\bin\lib.so

[EDIT-01] 更多详情如下:

收到错误:“错误 500:java.lang.UnsatisfiedLinkError:com.chrysalisits.crypto.LunaAPI.Initialize()V”

I am trying to get Websphere to interface with LunaSA HSM to retrieve public/private keys. They have provided me with: libLunaAPI.sl, libLunaAPI.so, LunaJCASP.jar, LunaJCESP.jar. From IBM's Websphere V8 -> References -> Class Loading Exceptions, it indicates that I need the *.so file for HP-UX so I did that accordingly. The path set are absolute paths which I have specified in the Websphere. This relates to my second question.

第一个问题是我实际上想知道是否可以将这些文件放入 myProgram.war 并从那里运行,而不是使用 WinSCP 访问服务器并将文件放在那里以获取绝对路径引用。也许指定上述文件位于我的程序中,而不是在 \WEB-INF\lib\ 下。这是因为只有我的这个程序才能访问 LunaSA HSM。

** PS。我尝试了这两种方法,但仍然失败。叹。

4

1 回答 1

1

对于共享库实现,我相信您只指定Native Library Path 中的目录,而不是文件名。也就是说,使用您当前的文件位置,/opt/apps/WebSphere/AppServer/bin.

另一方面,我希望该目录已经在 WebSphere 的WAS_LIBPATHandSHLIB_PATH中,因此根本没有必要列出它。(检查$WAS_HOME/bin/setupCmdLine.sh。)

但是,我认为最好在某处为您的 luna 文件创建一个子目录,然后将您的共享库本机库路径指向该目录。

于 2012-07-06T17:10:00.233 回答