【问题标题】:Portlet not getting deployedPortlet 未部署
【发布时间】:2017-05-10 23:08:24
【问题描述】:

我有一个奇怪的问题,我花了很多时间。 为了构建我的 portlet,我没有使用 sdk,而是使用我自己的 ant 脚本来完成这项工作。直到出现这种奇怪的情况,它都可以正常工作。

我基本上使用了 portal-service.jar 中的很多类来更改角色设置等。当我将它包含在我的构建路径中并再次部署它时。它没有被部署。在 shell 上它显示了部署,下面是日志:

将 1 个文件复制到 C:\liferay-portal\tomcat-6.0.29\webapps\ch1_HelloWorld

删除目录 C:\liferay-portal\tomcat-6.0.29\temp\20121016060846753

06:08:47,887 INFO [PortletAutoDeployListener:81] C:\liferay-portal\tomcat-6.0.29\deploy\ch1_HelloWorld.war 的 Portlet 已成功复制。

部署将在几秒钟后开始。 2012 年 10 月 16 日上午 6:08:56 org.apache.catalina.startup.HostConfig checkResources

INFO:重新加载上下文 [/ch1_HelloWorld]

就是这样!后来它不显示(如通常那样)portlet 可以使用。在浏览器中,在“添加选项卡”下,该选项永远不会显示。这可能是什么问题。 portlet 是一个简单的 hello world portlet,用于访问角色信息

【问题讨论】:

  • 我是否理解正确,您的 portlet 已正常部署,然后可以工作,但未显示在“添加 > 更多...”菜单中?
  • 是的!它没有显示在“添加”选项卡中
  • 事实上 webapps 里面的文件夹是完美的。
  • 这个问题“unable to view deployed liferay portlet in the add >> more option”和answer可能会帮助你,如果你还没有尝试过答案中提到的事情:-)
  • 你能发布你的 ant 脚本吗?

标签: liferay liferay-6


【解决方案1】:

我基本上使用了很多来自 portal-service.jar 的类来更改角色设置等。当我将它包含在我的构建路径中并再次部署它时。它没有被部署。在 shell 上它显示了部署,下面是日志:

您是否将portal-service.jar 放到WEB-INF/lib 中?如果是这样,请将其从那里删除并将其添加到其他 (my_project/lib) 目录,而不是将其添加到构建路径。

还要确保部署后的portal-service.jar 不在您部署的WEB-INF/lib 中。 更好的是,首先取消部署而不是重新部署。

【讨论】:

  • 谢谢你会试试的。目前在我的构建路径中,我已将它直接链接到位于 tomcat/lib/ext 中的 jar。这有什么问题吗?
  • 如果你这样做没有问题,只要确保你的 WEB-INF/lib 中没有 portal-service.jar 的副本。 (在项目和 tomcat/webapps/my_project/WEB-INF/lib 中)。您能否列出您在成功部署和当前问题之间所做的更改(在 portal-service.jar 旁边)(如果有)
  • 嗯,这是“Portlets in Action”中的“ch1_HelloWorld”吗?如果是这样,您只是添加了“portal-service.jar”并使用了一些 liferay 服务?请准确说明您使用的是哪个版本的 Liferay。
【解决方案2】:

这是否在你的 liferay-display.xml 中正确设置?

<display>
    <category name="yourCategoryUnderAddMenu">
        <portlet id="yourPortletId"></portlet>
    </category>
</display>

【讨论】:

    【解决方案3】:

    迟到的答案,但也许会对某人有所帮助:

    - 只是关闭你的服务器;
    - 从“webapps”tomcat 文件夹中删除 portlet;
    - 你应该删除“temp”和“work”文件夹的内容;
    - 重新启动您的服务器并部署您的 portlet。

    一切都应该没问题。 我不知道为什么会发生这种情况,但是我多次遇到此问题并使用相同的解决方案进行修复。

    再见!

    【讨论】:

      【解决方案4】:

      auto.deploy.dest.dir 指向错误的位置时,通常会出现这种情况。首先,我意识到常见的错误是将这一点指向liferay_home/deploy,这是不正确的。此属性指定分解文件的目标。对于 tomcat,它将是 webapps 目录,例如/opt/liferay-portal-6.2-ce-ga2/tomcat-7.0.42/webapps

      换句话说,tomcat 在接收到分解的文件后,继续进行。在您的情况下,tomcat 从未意识到任何变化。

      【讨论】:

        【解决方案5】:

        从 webapps 中删除旧战争,并将新战争手动放入 Deploy 文件夹中。

        看起来您可能是通过将其复制到 webapps 文件夹而不是 deploy 来进行部署?

        【讨论】:

          【解决方案6】:

          转到 plugins-sdk 文件夹。 打开 build.userName.properties(在我的例子中,文件名是 build.asif.properties) 打开它.. 添加以下行

          auto.deploy.dir = D:\\nWorkSpace\\liferay-portal-6.2.0-ce-ga1\\deploy

          “D:\nWorkSpace\liferay-portal-6.2.0-ce-ga1\deploy”是我的部署目录的路径。

          nWorkSpace 是我的工作区。我的问题解决了。

          【讨论】:

            【解决方案7】:

            我尝试了上述所有解决方案,但我的问题在 Liferay 6.2 EE sp2 捆绑包上没有得到解决。

            我终于能够通过从 Tomcat home/conf/Catalina/localhost 文件夹中清除除 ROOT.xml 之外的所有 portlet xml 文件来解决 portlet 部署问题。

            上面的这个提示是在下面的帖子中提供的 - 博客帖子如何不再退出并且必须在下面的档案中使用谷歌搜索找到,以防有人感兴趣。它为我节省了数小时的精力。

            https://www.liferay.com/community/forums/-/message_boards/message/2124111

            http://archive-ro.com/page/754918/2012-11-26/http://blog.ropardo.ro/2010/08/09/liferay-deployment-will-start-in-a-few-seconds-and-how-to-realy-start/

            【讨论】:

              猜你喜欢
              • 2014-05-08
              • 2019-11-30
              • 1970-01-01
              • 2016-10-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-07-12
              • 1970-01-01
              相关资源
              最近更新 更多