如何通过jnlp向许多webapps提供jetty?

时间:2010-02-28 10:28:17

标签: jetty jnlp embedded-jetty java-web-start maven-jetty-plugin

我有一个webapp(http://sourceforge.net/projects/sf-mvn-plugins/files/m2-repo/net/sf/maven/plugins/example-captaincasa-jnlp/0.1-SNAPSHOT/example-captaincasa-jnlp-0.1-SNAPSHOT.war/download),它在servlet容器中使用jsf。这适用于我本地电脑上的jetty-maven-plugin run-war目标。在未来,我想更多地使用这种weapps。

现在我正在寻找一种通过jnlp通过jetty提供此webapps的方法。最终用户应该没有安装,但是webapps需要servlet容器,而我的hoster不支持servlet容器或应用程序服务器等。

我不喜欢嵌入式解决方案,因为在这种情况下,每个webapp必须与单独的码头一起交付并且使用单独的码头运行 - >太大了 - >许多下载大小等等。

架构应该与此类似: architecture http://tmichel.users.sourceforge.net/files/Architecture.png

示例:Bundle1可能包含jetty并部署了webapp1,而Bundle2可能包含jetty并部署了webapp1和webapp2(与最终用户的需求相关,我想提供我的webapps的许多变体)

但我的问题是什么? 1)需要哪些码头?我想将这些上传到我的主页进行托管。 2)我应该使用哪个罐子作为主要罐子通过jnlp启动他? 3)我应该使用哪个主类通过jnlp启动jetty? 4)我可以使用配置码头来说这是webapp1的战争,这是webapp2的战争......或者这是用于热部署的weapps的目录......?

对我来说重要的问题是1)如果这个问题得到解答,那么我可以运行jetty本地(没有maven插件)并通过手册也许我可以解决其余2-4。

感谢您的想法

托马斯

2 个答案:

答案 0 :(得分:1)

为什么不部署一个普通的Java应用程序(带有main()等),通过其Server类以编程方式调用Jetty?该类通过代码配置适当的上下文,servlet类等。

我成功之前就已经这样做了。唯一令人头疼的是运行一个Jetty,并根据要求下载多个应用程序(如果我正确阅读了您的问题)。你可以使用一些类加载魔法,并根据需要从远程URL加载类/应用程序吗?

答案 1 :(得分:1)

我今天找到了另一种方式。这也很有趣。这是概念:

  1. 使用java webstart安装osgi容器
  2. 使用捆绑包x或osgi服务下载应用的所有捆绑包
  3. 使用码头捆绑提供码头支持
  4. 然后安装了应用程序

    我从这篇文章中得到了这个想法: http://www.toedter.com/blog/?p=45