我试图通过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]
看起来如下图所示:
答案 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片段项目:
deploy
文件夹中。我在日志中看到了这个: 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然后单击登录时。这对你有用吗?