我在 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 文件夹中。之后我的应用程序似乎工作。