【发布时间】:2016-10-07 16:14:07
【问题描述】:
我目前在工作中遇到了一个问题,我一直在苦苦挣扎,希望这里的人能够提供一些帮助。我想指出这是我在这里的第一个问题,所以如果可以更好地格式化,我深表歉意,如果我应该添加任何内容,请随时告诉我。
在过去的几个月里,我们的应用程序在 TomEE 服务器上运行得非常愉快,但最近我们公司的一些高层告诉我们,我们必须使用 Jetty。不幸的是,除非我们能证明使用 Jetty 对我们来说实际上是不可能的,否则试图劝阻他们不会是一种选择。
我已经尝试设置一个 Jetty 服务器,但我一直专注于使用 maven-jetty 插件。过去我们在 tomee-maven 插件上取得了巨大成功,所以我希望这也同样有效。
很遗憾,我们没有采用这种方法。我了解 Jetty 不是 JavaEE 服务器,因此我们尝试添加依赖项。看看我们的方法:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.3.9.v20160517</version>
<dependencies>
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0-6</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.2.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>1.1.33.Final</version>
</dependency>
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
<version>4.7.4</version>
</dependency>
</dependencies>
</plugin>
不幸的是,每次尝试通过与我们在 TomEE 中使用的 URL 相同的 URL 联系我们的应用程序都会给我们一个 404。请注意,自从尝试迁移到 Jetty 后,我们的 Java 代码没有任何变化。
我做了很多谷歌搜索,但想出的却很少。 ThisSE 问题找到了,不过是在 Jetty 6 的时候写的。我们用的是 Jetty 9,所以 Servlet 版本已经不是问题了。
那么,这里有人认为这可以做到吗?
更多细节: 我们正在使用 JavaEE 6, 我们专注于获取 CDI 和 Bean Validation,其他 EE 功能并不重要。
【问题讨论】:
-
这是完全可行的,可能不会太难,但你可能想从一个骨架项目开始。简单地添加 maven 依赖项可能还不够。只需习惯于启动码头并首先公开一个 servlet。然后添加焊接和您需要的任何其他功能。例如,按照焊接文档中的说明进行操作:eclipse.org/jetty/documentation/9.3.x/framework-weld.html
-
另外,它可能刚刚奏效。 jetty 在与 tomcat 不同的默认端口上启动。
-
我还将首先使用 jetty-distribution 支持您的应用程序,根据需要启用 cdi 模块等。然后,一旦您将这个工作步骤返回到 maven 插件中以用于开发目的。您永远不应该将任何 maven 插件用于“生产”部署场景。
-
是否有任何堆栈跟踪?日志中有任何内容吗?
标签: jakarta-ee jetty bean-validation maven-jetty-plugin openejb