Java 在通过Eclipse运行Liferay/Tomcat组合之后,为什么每次保存时发布都会失败并且我的portlet会注销?

Java 在通过Eclipse运行Liferay/Tomcat组合之后,为什么每次保存时发布都会失败并且我的portlet会注销?,java,eclipse,tomcat,deployment,liferay,Java,Eclipse,Tomcat,Deployment,Liferay,我成功地设置了一个通过Eclipse运行Liferay的Tomcat服务器。我正在开发一个非常简单的portlet,以进一步了解Liferay门户框架。每次我修改portlet中的任何文件并保存时,Eclipse都会尝试重新发布或重新部署到Tomcat服务器。即使是最简单的更改(更改CSS文件的一行),也会发生错误。弹出窗口显示: 在以下过程中发生内部错误: “发布到Liferay v6.0服务器 (Tomcat 6)在本地主机上。 org.eclipse.jst.server.tomcat.c

我成功地设置了一个通过Eclipse运行Liferay的Tomcat服务器。我正在开发一个非常简单的portlet,以进一步了解Liferay门户框架。每次我修改portlet中的任何文件并保存时,Eclipse都会尝试重新发布或重新部署到Tomcat服务器。即使是最简单的更改(更改CSS文件的一行),也会发生错误。弹出窗口显示:

在以下过程中发生内部错误: “发布到Liferay v6.0服务器 (Tomcat 6)在本地主机上。 org.eclipse.jst.server.tomcat.core.internal.ITomcatVersionHandler.prepareforservingdirect(Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jst/server/tomcat/core/internal/TomcatServer;)Lorg/eclipse/core/runtime/IStatus

此外,Eclipse控制台的内容如下:

2011年4月5日晚上11:11:21 org.apache.catalina.loader.WebappClassLoader已修改 严重:缺少资源“/WEB-INF/lib/commons logging.jar” 2011年4月5日晚上11:11:21 org.apache.catalina.core.StandardContext重载 信息:已开始重新加载此上下文 23:11:21080信息[ExtHotDeployListener:205]将不会取消部署客户门户liferay portlet的扩展环境 23:11:21081信息[PortletHotDeployListener:404]正在为客户门户liferay portlet注销portlet 23:11:21082信息[PortletHotDeployListener:435]1客户门户liferay portlet的portlet已注销

我认为控制台错误是前一个错误的结果——我尝试将commons-logging.jar放入/WEB-INF/lib/中,但在第一个错误发生后,它就被删除了


需要注意的一点是:发生此错误后,我可以在我的portlet上运行“ant deploy”,它将成功部署。只有在保存过程中才会崩溃。

这是我的最佳猜测:在Eclipse服务器视图中,查看您声明的服务器。在最左边那一行的开头有一个箭头,您可以单击该箭头打开服务器并查看部署在此服务器上的项目。如果这里列出了任何项目,Eclipse将在任何更改时重新构建和部署它。就我个人而言,我不喜欢这样,所以选择并删除已部署的项目,使它们不再由Eclipse自动部署。另一种方法是更改服务器,使其不会自动部署,但我从来没有使用过该功能


我不知道为什么自动部署会给您带来问题,这应该是可以的(尽管在编写WAR文件时Liferay尝试读取WAR文件时偶尔会遇到问题),但如果
ant deploy
工作正常,我不会担心。

这是我的最佳猜测:在Eclipse服务器视图中,查看您声明的服务器。在最左边那一行的开头有一个箭头,您可以单击该箭头打开服务器并查看部署在此服务器上的项目。如果这里列出了任何项目,Eclipse将在任何更改时重新构建和部署它。就我个人而言,我不喜欢这样,所以选择并删除已部署的项目,使它们不再由Eclipse自动部署。另一种方法是更改服务器,使其不会自动部署,但我从来没有使用过该功能


我不确定为什么自动部署会给您带来问题,它应该没问题(尽管我看到Liferay在编写WAR文件时尝试读取WAR文件时偶尔会出现问题)但是我不会担心ant deploy是否可以正常工作。

您看到的错误是因为Liferay IDE eclipse插件的版本(1.2.2)与Ecipse Helios SR2的最新版本不兼容。另一个版本是Liferay IDE eclipse插件的发行版(1.2.3),它修复了这个问题。因此,解决方案应该是从稳定版更新到最新版本。这将修复错误,部署应该正常进行。

您看到的错误是因为Liferay IDE eclipse插件的版本(1.2.2)与Ecipse Helios SR2的最新版本不兼容。另一个版本是Liferay IDE eclipse插件的发行版(1.2.3),它修复了这个问题。因此,解决方案应该是从稳定版更新到最新版本。这将修复错误,部署应该正常进行。

我正在使用Ant进行部署。 有两种部署方式:

  • 将project build.xml拖到视图中
  • 或者从“添加构建文件”图标中选择构建文件

  • 现在,在ant视图中双击ant文件以部署它。双击运行默认的ant目标,从而创建war文件

    我正在使用Ant进行部署。 有两种部署方式:

  • 将project build.xml拖到视图中
  • 或者从“添加构建文件”图标中选择构建文件

  • 现在,在ant视图中双击ant文件以部署它。双击运行默认的ant目标,从而创建war文件

    我最后选择了“从不自动发布”,这至少消除了每次单击“保存”时弹出的错误消息。如果每次我想重新部署我的portlet时不必“ant deploy”就好了,但我现在可以接受手动部署。不确定您是如何部署的,但我倾向于在Eclipse中打开ant视图,将project build.xml拖到视图中,然后双击ant视图中的ant文件进行部署。双击运行默认的ant目标,它是
    deploy
    ,因此非常简单。我最后选择了“从不自动发布”,这至少消除了每次单击save时弹出的错误消息。如果每次我想重新部署我的portlet时不必“ant deploy”就好了,但我现在可以接受手动部署。不确定您是如何部署的,但我倾向于在Eclipse中打开ant视图,拖动project build.xml I