0

我在 Windows Server 2008 上的 Karaf 3.0.1 上运行一组应用程序。我遇到了我的服务所依赖的第 3 方库的问题。

karaf 安装作为专用的 Active Directory 服务用户帐户运行。如果我登录到 Windows 服务器(使用我自己的登录名),并以 karaf 服务用户(使用 run-as)打开命令提示符,然后启动 karaf,我的所有进程都可以正常工作。

但我希望 karaf 作为 Windows 服务运行。我按照说明使用 karaf 包装器,它已作为服务安装。我让它作为我曾经在控制台中以交互方式运行它的同一个 karaf 服务用户运行,但是每当它从 Windows 服务运行时,我都会在包装日志中收到一条消息,它“无法加载或找到”我的第三个党图书馆。我不确定我是否能够公开第 3 方库,但我相信它使用 JNI 来实现其部分功能,如果这很重要的话。涉及到一个 dll,并且在部署文件夹和 Windows\system32 / syswow64 文件夹中都有这个 dll 的副本以确保完整性。我也将整个 karaf 文件夹的完全权限授予了 karaf 服务用户。

这似乎是某种权限问题,或者包装服务配置丢失了一些东西,但我没有看到任何东西跳出来。作为服务运行的 karaf 与使用相同用户凭据从控制台运行它之间还有什么不同?还有其他想法吗?


编辑:在查看了有关包装器的进一步文档后,我最终将我的 dll 放在了我的 karaf 安装下的 \lib 文件夹中。之后我的应用程序似乎工作。

4

1 回答 1

1

根据您的 dll 的类型,可能是因为提供的服务包装器是仅 32 位的包装器,这是因为 Tanuki 服务包装器的许可问题。因此,从 bin/karaf 开始而不是使用服务时,使用 dll 可能会起作用。如果你想使用 Tanuki Wrapper,你应该可以自己安装它来使用它。它的最新和最好的版本,只是由于许可问题而无法发货。

于 2014-12-27T13:43:46.193 回答