在Tomcat / Eclipse中部署WAR文件

10
我使用Linux下的Tomcat 6.0和Eclipse 3.0,尝试在Tomcat中部署WAR文件。问题是服务器由Eclipse管理,并且我已经部署了一些Eclipse项目。我尝试修改server.xml文件,然后通过Eclipse启动Tomcat,但是它无法工作:

无法加载位于/Servers/Tomcat v6.0 Server at localhost-config的Tomcat服务器配置。配置可能损坏或不完整。

我尝试在webapps目录中提取war文件,但是Web应用程序仍然无法访问。

部署War文件的最佳实践是什么?

4个回答

9
Tomcat在开发和生产模式下的行为不同。在Eclipse中开发web应用程序时,无需在开发过程中将应用程序部署为WAR文件。
只需转到“服务器”视图并添加一个新服务器(您应该已经完成此操作,否则您将无法创建Dynamic Web项目)。在服务器视图中,您应该会看到您创建的服务器(Tomcat在localhost或类似位置)。只需右键单击它并转到“添加和删除”部分即可。在这里,您可以添加和删除在Eclipse中创建的Dynamic Web项目。一旦您添加了项目,所有您需要做的就是在服务器视图中单击绿色的启动按钮,然后您的应用程序应该在 localhost:8080/mycontext 处可用。
当您构建完应用程序后,只需右键单击项目并转到菜单中的“导出”部分。您应该能够导出WAR文件。一旦您拥有WAR文件,您可以将其上传并部署到未绑定于以dev模式运行的Eclipse的Tomcat实例上。

5
好的。所以我无法在开发模式下在Tomcat上部署WAR文件。真遗憾! - Loïc Guillois
@lgu:也许你可以解释一下你想这样做的原因。 - Luke
2
因为我已经构建了一个应用程序,提供了一个被我的“eclipse app”使用的JSON API。当我在不同的服务器上运行这些应用程序时,遇到了跨域异常,而且我不能使用jsonp。解决方案是使用本地代理(nginx……),但我认为这有点过度kill。 - Loïc Guillois
1
当您在Eclipse中以开发模式运行应用程序时,当您“运行”应用程序时,部署会自动发生。部署仅是您需要为测试或生产服务器执行的操作。 - Luke

8

在某种程度上,您可以在开发模式下部署war。

我有同样的问题。

我有一个Eclipse Web应用程序项目,Eclipse将其部署到由Eclipse运行的Tomcat实例中,因此我可以热编辑该项目。

此Web项目需要使用由另一个Web应用程序发布的资源,该应用程序必须在同一Tomcat实例中运行。其他Web应用程序是由其他人完成的已经以war形式存在。

我需要将war作为Eclipse项目导入并让Eclipse将其部署到Eclipse的同一实例中,以便在我的Web应用程序所在的Tomcat实例中运行它。

问题在于,有些war可以这样工作,但有些却不行,而所有这些war在单独运行的Tomcat(通过startup.sh启动)中都可以正常工作。我想不出为什么。


3

这是一篇旧的但是在谷歌搜索中排名靠前的答案。

你可以导入WAR文件:

Web Archive (WAR) 文件是一个可移植,打包成的Web应用程序,你可以将其导入到你的工作区中。

在导入WAR文件之前,你应该首先确定WAR文件是否包含所需的Java™源文件。当将WAR文件导入现有的Web项目时,导入的Web部署描述符文件要么不会被更改,要么会被包含在导入的WAR文件中的文件覆盖,这取决于你对提供的提示的回应。在任何情况下,这个操作都不代表两组部署描述符的合并。

要将WAR文件中的Web项目资源导入到你的工作区中,请完成以下步骤:

  1. 选择文件 > 导入。
  2. 在导入对话框中,选择WAR文件,然后单击下一步。
  3. 使用浏览按钮找到要导入的WAR文件。
  4. 向导会假定您想要创建一个与WAR文件同名的新Web项目。如果您接受此选项,则该项目将以WAR文件指定的相同servlet版本和位置创建。如果您想要覆盖这些设置,可以单击新建并在Dynamic Web Project向导中指定新设置。
  5. 单击完成以填充Web项目。

来源: http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.wst.webtools.doc.user%2Ftopics%2Ftwimpwar.html


这是一个很好的答案,确实可以像这样运行WAR文件,唯一的缺点是它似乎会解压并保留那个版本,你不能随时更改WAR文件,每次更改都需要重新导入。 - JohnEye

2

如果你只有一个二进制的WAR包(没有源代码),则无法在Eclipse中安装。这可能发生在正常开发工作流程之外的某些情况下。以下是解决方法:

  1. 启动另一个Tomcat实例(在Eclipse之外)。
  2. 修改tomcat-users.xml文件以启用管理员权限。
  3. 转到http://localhost:8080/manager/html
  4. 向下滚动到要部署的WAR文件
  5. 单击选择文件(在选择要上传的WAR文件旁边),然后单击部署

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接