Liferay 7 jsp钩子模块不起作用

时间:2016-06-30 08:26:17

标签: jsp ide liferay blade liferay-7

我试图通过Module覆盖JSP。该模块是deployt但它不会产生任何影响。我尝试覆盖create_account.jsp。我的bnd.bnd看起来像这样:

Bundle-Version: 1.0.0 Fragment-Host: com.liferay.login.web;bundle-version="1.0.5" -sources: true

我的模块与服务器同步。我使用developper-mode和Liferay 7.0.1 GA2。

create_account.jsp位于以下路径中:

/test-module/src/main/resources/META-INF/resources/create_account.jsp

任何想法为什么它不起作用?

我的portlet状态为已安装。我可以执行compileJSP taks并将其更改为已解决。我认为它应该像所有其他模块一样活跃

我也无法解析JSP中的变量,这些变量位于其他JSP文件中。例如: PropsValues 。可以, build.gradle 中存在错误/缺失的依赖关系吗? dependencies { compile group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.0.0" compile group: "com.liferay.portal", name: "com.liferay.util.taglib", version: "2.0.0" compile group: "javax.portlet", name: "portlet-api", version: "2.0" compile group: "javax.servlet", name: "servlet-api", version: "2.5" compile group: "jstl", name: "jstl", version: "1.2" compile group: "org.osgi", name: "org.osgi.compendium", version: "5.0.0" }

我在没有IDE的情况下再次建立了洞项目,我也遇到了同样的问题。当我尝试部署它时会发生错误。但它仍然在服务器上部署已安装

PS C:\DEV\Git\faberplace-workspace\modules\com.clavisit.registration.hook.jsp> blade deploy
:modules:com.clavisit.registration.hook.jsp:compileJava UP-TO-DATE
:modules:com.clavisit.registration.hook.jsp:buildCSS UP-TO-DATE
:modules:com.clavisit.registration.hook.jsp:processResources UP-TO-DATE
:modules:com.clavisit.registration.hook.jsp:transpileJS SKIPPED
:modules:com.clavisit.registration.hook.jsp:configJSModules SKIPPED
:modules:com.clavisit.registration.hook.jsp:classes UP-TO-DATE
:modules:com.clavisit.registration.hook.jsp:jar
:modules:com.clavisit.registration.hook.jsp:assemble
:modules:com.clavisit.registration.hook.jsp:build

BUILD SUCCESSFUL

Total time: 5.486 secs
stop 482
org.osgi.framework.BundleException: Invalid operation on a fragment.
update 482 file:/C:/DEV/Git/faberplace-workspace/modules/com.clavisit.registration.hook.jsp/build/libs/com.clavisit.regi
stration.hook.jsp-1.0.4.jar
Updated bundle 482
start 482
org.osgi.framework.BundleException: Invalid operation on a fragment.
Error
  0. [DeployCommand.installOrUpdate] aQute/bnd/header/Parameters

当我将刀片部署后的JAR复制到部署文件夹中时,状态将更改为已解决

这与以下问题相同: Deploying an osgi bundle (jsp hook) in liferay 7

更多信息:

我在Windows上工作。

日志说明我部署的时间:

07:05:43,732 INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:252] Processing blade.hook.jsp-1.0.0.jar
07:05:51,904 INFO  [Refresh Thread: Equinox Container: b0a1d0af-1044-0016-189b-a4fba6a2d683][BundleStartStopLogger:38] STOPPED com.liferay.login.web_1.0.5 [219]
07:05:52,494 INFO  [Refresh Thread: Equinox Container: b0a1d0af-1044-0016-189b-a4fba6a2d683][BundleStartStopLogger:35] STARTED com.liferay.login.web_1.0.5 [219]

看起来如下图所示:

Login Screenshot

1 个答案:

答案 0 :(得分:0)

永远不会激活片段。它在解析主机模块时附加到主机模块。听起来你通过手动将片段JAR复制到Liferay的deploy文件夹来解决问题之一,对吧?您可以确保片段附加到主机的一件事是,从gogo shell中键入 refresh [host bundle id] 。不完全确定,但这应该让主持人拿起片段。

此外,请在此处查看blade.hook.jsp示例:https://github.com/liferay/liferay-blade-samples/tree/master/gradle/blade.hook.jsp

build.gradle文件只有版本设置为1.0.0,而bnd.bnd除了您拥有的内容外,还包括

-jsp: *.jsp,*.jspf
-plugin.jsp: com.liferay.ant.bnd.jsp.JspAnalyzerPlugin

我从那里开始。

编辑以发表评论: 我通过执行以下操作从命令行测试了liferay-blade-samples片段项目:

  1. 导航到liferay-blade-samplesclone并进入gradle / blade.hook.jsp并构建项目。
  2. 将JAR复制到我正在运行的Liferay CE GA2安装的deploy文件夹中。我在日志中看到了这个:
  3. 15:26:51,185 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:252] Processing blade.hook.jsp-1.0.0.jar 15:26:59,253 INFO [Refresh Thread: Equinox Container: 10c85452-c442-0016-189b-ada8a71b73c4][BundleStartStopLogger:38] STOPPED com.liferay.login.web_1.0.5 [171] 15:26:59,659 INFO [Refresh Thread: Equinox Container: 10c85452-c442-0016-189b-ada8a71b73c4][BundleStartStopLogger:35] STARTED com.liferay.login.web_1.0.5 [171]

    JSP就是这样做的:

    <p style="color: red">changed</p>

    我可以看到红色文字&#34;已经改变了#34;当我退出Liferay然后单击登录时。这对你有用吗?