首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在IDEA中构建.war文件部署到Liferay?

如何在IDEA中构建.war文件部署到Liferay?
EN

Stack Overflow用户
提问于 2012-04-08 20:43:50
回答 3查看 3.1K关注 0票数 2

我有一个现有portlet的来源。我对它做了一些修改,以修复一些错误,现在我需要部署固定的源到救生筏上。我使用工件选项构建war文件,并像往常一样部署这个war文件。但是我仍然不能在页面上添加portlet,因为我没有在列表中看到它。我做错了什么?

我使用主意11.1和救生筏6.0.6,如果它是重要的。

错误的war文件似乎存在问题,因为其他war文件(我自己没有编译)已经成功部署。

而且,如果在构建工件时创建war文件是很重要的,那么不要使用Ant。

日志:

代码语言:javascript
运行
复制
09:37:09,430 INFO  [PortletAutoDeployListener:71] Copying portlets for D:\odesk_work\liferay\liferay-portal-6.0.6\deploy\Comply-Activities-portlet-6.0.5.2.war
  Expanding: D:\odesk_work\liferay\liferay-portal-6.0.6\deploy\Comply-Activities-portlet-6.0.5.2.war into D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483\WEB-INF
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483\WEB-INF\classes
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483\WEB-INF\classes
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483\META-INF
  Copying 119 files to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\webapps\Comply-Activities-portlet
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\webapps\Comply-Activities-portlet
  Deleting directory D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483
09:37:12,456 INFO  [PortletAutoDeployListener:81] Portlets for D:\odesk_work\liferay\liferay-portal-6.0.6\deploy\Comply-Activities-portlet-6.0.5.2.war copied successfully. Deployment will start in a few seconds.

看起来它在部署时崩溃了。因为当我试图部署有效的portlet时,日志中有一些附加信息,如

代码语言:javascript
运行
复制
09:13:37,874 INFO  [PortletHotDeployListener:220] Registering portlets for Comply-Activities-portlet
09:13:37,976 INFO  [PortletHotDeployListener:369] 1 portlet for Comply-Activities-portlet is available for use

也许有人会给我提供正确构建*.war的指导?我想这就足够了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-08 23:38:57

确保liferay-display.xml在war中的WEB-INF目录中,并且它的内容没有问题。

它应该包含这样的内容:

代码语言:javascript
运行
复制
<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 5.2.0//EN"     "http://www.liferay.com/dtd/liferay-display_5_2_0.dtd">

<display>
<category name="${liferay.category}">
    <portlet id="yourPortletID" />
    <portlet id="yourPortletID2" />
            <!-- more portlet ids -->
</category>
</display>

也许构建系统在制造战争时失去了它。

如果不是的话,把它放在那里手动,看看这是否有效。

编辑

好的。现在有了更多的信息,看起来你在战争中包括了servlet-api。jar (及其内部的类)由门户提供(更具体地说,由servlet容器提供)。portlet-api也是如此。您不应该将它们包含在部署的应用程序中。

检查这些依赖项是否在您的<scope>provided</scope>中指定为pom.xml。

票数 1
EN

Stack Overflow用户

发布于 2012-04-08 22:04:25

首先尝试从bundle/tomcat/webapp中卸载portlet --删除portlet。然后再次部署portlet。

票数 0
EN

Stack Overflow用户

发布于 2012-04-09 13:43:30

用ant构建项目,创建war,现在它开始工作了。但也许不用蚂蚁就能做到这一点,只有有了想法。我要检查一下。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10066343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档