1

针对一个 Web 容器(比如 Jetty)的 jar 构建一个 java 程序并在另一个(比如 Tomcat)中运行它有什么影响?

我有一个应用程序,我在开发期间在 Jetty 中运行,但它被部署到 tomcat 服务器中进行生产(为什么?因为它似乎更容易开发而无需运行整个 tomcat 服务器。)

4

3 回答 3

2

对于任何非开发人员构建,您应该只针对您的目标级别的官方 Java EE API 进行编译。最好通过构建引擎。最好在与您开发的操作系统不同的操作系统上。

对于 Web 应用程序,这意味着从 Oracle 下载的适当 servlet API。类似的企业应用程序。

以我的经验,这是保持直截了当的最佳方法。


编辑:Java EE SDK 可从http://www.oracle.com/technetwork/java/javaee/downloads/index.html获得。如果您需要 Java EE 6 之前的版本,请点击“Previous Releases”链接。

于 2011-07-25T17:18:58.973 回答
0

您通常希望在部署位置进行开发。使用 tomcat 与 jetty 进行开发可能会稍微困难一些,但是您已经确定了 jar 冲突问题的潜在混乱,因此使用 tomcat 进行开发似乎不值得,因为您部署到 tomcat?

此外,通常通过花时间编写将代码部署到开发容器的 ant(或其他)任务来减轻针对 tomcat/您选择的容器进行开发的痛苦。工作周期开始

1) 编写新代码
2) 确保测试通过
3) 运行您的“重新部署”脚本
4) 在正在运行的实例中四处寻找

你可能想这样做。

最后,本着松耦合的精神,如果可以避免的话,您可能不想依赖特定于容器的库;仅将其作为绝对的最后手段。

于 2011-07-25T17:10:50.980 回答
0

您可能会遇到 MethodNotFoundError 等问题。您通常可以通过确保安装在服务器上的 jar 版本匹配来解决这些问题。

于 2011-07-25T17:04:30.493 回答