我使用Java-Servlets开发了一个WebApplication。它在GlassFish-Server中运行(在Windows-Plattform上)。现在我需要加载一个带有JNI的DLL。我使用System.loadLibrary(dll)来执行此操作。我现在正在搜索,在Application-Startup上加载这个库,以便它可以用于所有Application-Instances。我现在的问题是:
谢谢你的帮助。
托马斯
答案 0 :(得分:2)
您可以实现ServletContextListener
,并且在收到contextInitialized
事件后,您可以在该点加载dll。
如果你正在使用Spring(甚至更好),你可以静态加载dll(在Spring启动时)然后使用Spring来获取dll的“处理程序”。
请注意,如果您直接从Web应用程序加载dll并且dll崩溃,那么您的应用程序也会崩溃。
也许你应该考虑(虽然需要额外的努力)通过另一个过程加载并使用例如RMI与dll交互。因此,如果dll崩溃,您的应用仍然保持不变。