【问题标题】:Deploy Struts2 WebApp Within An Eclipse RCP Application Via Jetty通过 Jetty 在 Eclipse RCP 应用程序中部署 Struts2 WebApp
【发布时间】:2015-09-01 21:15:46
【问题描述】:

现在这对你来说是一团糟......

我目前正在开发一个 Eclipse RCP 应用程序插件。这个插件的目标是提供一个 web 应用程序供用户在 Eclipse ViewPart(SWT 浏览器控件)中进行交互。

我希望这个 web 应用程序由 Struts2 提供支持,并且我已经有 Jetty 可供我使用。

有什么方法可以以这种方式部署 Struts2 WebApp?如果需要更多信息,请询问!

编辑#1:

更多细节。我目前知道如何部署struts2 应用程序的唯一方法是通过war 文件(即托管在tomcat 上)。在这种情况下,这不是我能做的。我需要使用 Eclipse RCP 框架提供的 Jetty 服务器以某种方式在内部以嵌入式方式部署 struts2。

结果:

事实证明,您可以使用嵌入式 Jetty 部署 WAR 文件(在本例中为 struts2 应用程序)。我发现 Joakim Erdfelt 在这里做的:Embedding Jetty as a Servlet Container

【问题讨论】:

  • 目前还不清楚您希望如何部署它以及尝试部署时发生了什么。还请说明您为更好地理解问题所做的努力。
  • @RomanC 我进行了编辑以使我的问题更加清晰。在我在这里问之前,我已经环顾了很长时间,以找到一些关于如何在没有运气的情况下做到这一点的指示。我希望有人尝试过这个并可以指出我正确的方向。我只需要让 Struts2 与 Eclipse RCP 提供的嵌入式 Jetty 服务器一起部署。

标签: java web-applications struts2 jetty eclipse-rcp


【解决方案1】:

Struts2 Web 应用程序可以像 Jetty 一样在 servlet 容器中运行。 Jetty 也有一个嵌入式选项。 Eclipse RCP 使用 Eclipse 平台通过插件进行扩展和定制。有using Eclipse RCP with embedded Jetty server的文章:

首先,让我们将 jetty 插件添加到我们的依赖项中。打开选项卡 依赖项 在您的插件配置中。然后加上这六个 必需插件的插件:

javax.servlet
org.eclipse.equinox.http.jetty
org.eclipse.equinox.http.regstry
org.eclipse.equinox.http.servlet
org.mortbay.jetty.server
org.mortbay.jetty.util

在您需要的应​​用程序启动时包含的插件列表中 将三个插件的 Auto-Start 值更改为 true(如果您是 懒惰,您可以将默认行为设置为自动启动,但这是 另一个问题):

org.eclipse.equinox.http.jetty
org.eclipse.equinox.http.regstry
org.eclipse.equinox.http.servlet

现在,如果您运行应用程序,您可以检查您的服务器是否 通过访问http://localhost 正确运行。这应该工作 完美无缺,除非您不允许在端口中运行服务器 80 或已经有服务器在 80 端口运行。

您可以通过在 VM 参数中添加参数来更改端口 运行配置。添加此值: -Dorg.eclipse.equinox.http.jetty.http.port=8888。将8888 更改为 您希望服务器运行的任何端口。

现在,如果您正在运行该应用程序,您可以从 你之前提到的端口。

下一个任务是定义一个(或多个)servlet 服务器收到的任何请求。为此,您需要打开 Extensions 选项卡从您的插件配置中添加一个新的 扩展名为 org.eclipse.equinox.http.registry.servlets。后 添加新的servlet。您需要提及的类名 servlet,以及它的别名。这里的一个注意事项是您需要添加斜杠 在别名前面。例如,如果你想制作 servlet 可从http://localhost:8888/webserviceInterface 访问,然后 别名值为/webserviceInterface。当然,你需要 实现一个 servlet,它会做你想做的工作。

【讨论】:

  • 这无疑为我指明了正确的方向!谢谢!阅读您的帖子后,我做了更多研究,也找到了这个答案:stackoverflow.com/questions/17246512/… 我想可以将 Jetty 指向 WAR 文件并让它以这种方式工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多