通过包装器作为服务运行的karaf和作为同一用户从控制台运行的有什么区别?

时间:2014-12-26 04:21:03

标签: windows apache-karaf karaf

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

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

但我希望karaf作为Windows服务运行。我按照说明使用karaf包装器,它已作为服务安装。我把它作为我用来在控​​制台中以交互方式运行的karaf服务用户运行,但是当它从Windows服务运行时,我在包装器日志中收到一条消息,它无法加载或查找& #34;我的第三方图书馆。我不确定我是否能够透露第三方库,但我认为如果重要的话,它会使用JNI作为其部分功能。有一个涉及的dll,在deploy文件夹中有一个这个dll的副本,并且两个Windows \ system32 / syswow64文件夹都有完整性。我也给了karaf服务用户完整的karaf文件夹权限。

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


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

1 个答案:

答案 0 :(得分:1)

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