我正在构建一个OSGi应用程序,其中包含(目前)只有业务逻辑。由于我希望我的用户通过浏览器与我的软件进行交互,我正在考虑尝试通过以下命令在我的应用程序中添加应用程序服务器:
public void startApplicationServer();
public void stopApplciationServer();
public void deployApp(App appToDeploy);
public void undeployApp(App appToUndeploy);
经过一番思考,我选择的应用服务器是“wildfly 10”。但是,我没有找到任何允许我以编程方式调用wildfly的资源。我的问题是你知道要遵循的程序或一般步骤以实现我的目标吗?
您可以找到一些有用的信息来帮助我:
我是整个“应用服务器”世界的新手,所以我很有可能错过了一些东西。
感谢您的回复。
答案 0 :(得分:1)
您可能需要查看WildFly Swarm。
虽然没有记录,但还有WildFly launcher API。您可以在wildfly-maven-plugn
中看到一些示例。
另一种选择是application client。虽然我可能会倾向于使用WildFly Swarm作为你的用例。
答案 1 :(得分:1)
我最终在OSGi环境中嵌入了tomcat 8。我真的想为OSGi和应用服务器使用相同的JVM进程(至少对我来说有两个独立的进程,所有后续的开销都没有意义),因此嵌入tomcat是完美的。放弃Java EE 7 Full Profile并不是一个很大的损失,因为我只需要Web Profile(+用于Web服务的Jersey)。
我写了一篇关于如何在OSGi here上嵌入tomcat的指南:如果链接崩溃,我会在这里写下最重要的阶段:
JarScanner
创建一个新的StandardJarScanner
,其中忽略“http:// .extensions: /”等URI; context.setJarScanner(JarScanner js)
次电话使用context= tomcat.addWebApp(String, String)
方法; ServiceRegistration
程序通过“扩展束激活器”注册“tomcat bundle”服务; 我不会仅仅因为我的问题与野蝇有关而将此答案标记为正确答案。我认为这个答案只是一种解决方法(即使对我来说这个答案肯定能解决我的问题)