2010-11-24 350 views
7

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

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

我试图解压webapps目录中的war,但webapp仍然无法访问。

部署战争的最佳实践是什么?

回答

5

Tomcat在开发和生产模式下表现不同。在Eclipse中开发Web应用程序时,没有理由在开发期间将应用程序的WAR文件部署为WAR。

只需转到“服务器”视图并添加一个新服务器(您应该已经完成​​了此操作,否则您无法创建动态Web项目)。在服务器视图中,您应该看到您创建的服务器(本地主机上的Tomcat或类似的东西),只需右键单击它并转到添加和删除部分。在这里,您可以添加和删除您在Eclipse中创建的Dynamic Web项目。一旦你添加了你的项目,你所要做的就是点击服务器视图中的绿色开始按钮,你的应用程序应该在localhost:8080/mycontext

完成构建应用程序后,只需右键单击项目并转到菜单中的“导出”部分即可。您应该能够导出WAR文件。获得WAR文件后,您可以上传并将其部署到未绑定到以开发模式运行的Eclipse的Tomcat实例上。

+5

确定。所以我无法在开发模式下的Tomcat上部署WAR。太遗憾了! – 2010-11-25 08:52:19

+0

@lgu:也许你可以解释你想这么做的原因。 – Luke 2010-11-25 08:59:10

7

是的,从某种意义上说,您可以在开发模式下部署一场战争。

我有同样的问题。

我有一个Eclipse webapp项目,Eclipse部署到由Eclipse运行的Tomcat实例,因此我可以热编辑该项目。

该Web项目需要使用另一个必须在Tomcat的同一实例内运行的Web应用程序发布的资源。另一个webapp是由其他人完成的项目,因此它已经处于战争状态。

我需要File->将战争导入为Eclipse项目,并让Eclipse将其部署到Eclipse的同一个实例,以便在运行我的webapp的同一个Tomcat实例中运行它。

问题是,有些战争以这种方式工作,但有些战争却没有,尽管它们在独立的Tomcat(由startup.sh启动)中工作得很好。我无法弄清楚为什么。

0

这是旧的,但它是谷歌搜索的第一个答案之一。

可以导入W​​AR文件:

Web归档文件(WAR)是一种便携式的,打包的Web应用程序 ,你可以导入到你的工作空间。

在导入WAR文件之前,您应该先确定WAR文件是否包含所需的Java™源文件 。在将WAR文件导入到现有Web项目中时,导入的 Web部署描述符文件不会被导入的WAR文件中包含的 包含的文件所改变或覆盖,这取决于您对提供的提示 的响应。在任一情况下,这个动作确实是而不是代表 合并两组部署描述符。

要导入 Web项目资源在WAR文件到您的工作空间,请完成以下步骤 :

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

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