2

我正在尝试在部署在 Tomcat7 上的 axis2 Web 服务中执行 TFS Java SDK Api 命令。

我在 Windows 平台上成功运行了我的小应用程序。

我想在 Linux 上部署的 Tomcat 上运行我的 Web 服务。

我得到UnsatisfiedLinkError(例外):

Caused by: java.lang.UnsatisfiedLinkError: com.microsoft.tfs.jni.internal.platformmisc.NativePlatformMisc.nativeGetEnvironmentVariable(Ljava/lang/String;)Ljava/lang/String;

我定义了com.microsoft.tfs.jni.native.base-directory系统属性。我修改catalina.sh为包含-D"com.microsoft...=/home/user/tfsbin"行。我可以看到上面的系统变量是在 Tomcat Axis2 幸福页面上定义的(它提供了有关 VM 参数的信息)

我的 linux 是 32 位英特尔机器,所以我选择 linux\x86 作为本机库文件(5 个 .so 文件),我将它们复制到/home/user/tfsbin并设置com.microsoft.tfs.jni.native.base-directory到此文件夹。

我正在使用 Ubuntu、Oracle jdk7、Tomcat7、Apache Axis2 1.6.2。TFS SDK 11.0.0.1211

我还是明白了UnsatisfiedLinkError

任何帮助表示赞赏!

4

1 回答 1

3

这是解决方案:

下载 TFS Java SDK(我使用的是 build 11.0.0.1212)

当您提取文件夹时,您将看到 dist/native 文件夹。将此文件夹内容复制到 home/user/native。然后像这样在 setenv.sh 中设置系统属性:-Dcom.microsoft.tfs.jni.native.base-directory=/home/user/native

将上面路径中的用户替换为您在 linux 中的实际用户名。不要试图指向您的实际操作系统文件夹。TFS Java SDK 根据我的经验自动选择合适的操作系统。

于 2013-01-17T08:02:17.600 回答