liferay - Liferay 错误:无法实例化“portlet:renderURL”(com.liferay.taglib.portlet.RenderURLTei) 的 TagExtraInfo 类
问题描述
我正在尝试按照以下说明使用 Liferay 7.3.4 创建一个非常简单的 portlet:
除了以下代码,我已经删除了所有内容,但仍然无法定义 portlet:renderUrl 标记。
我收到的错误消息如下:
The TagExtraInfo class for "portlet:renderURL" (com.liferay.taglib.portlet.RenderURLTei) could not be instantiated
我正在使用 Maven 构建这个项目,上面定义的 portlet 有以下 pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>partner-portal-modules</artifactId>
<groupId>partner.portal</groupId>
<version>1.0.0</version>
</parent>
<groupId>com.xyz.portal.organization</groupId>
<artifactId>com.xyz.portal.organization</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.asset.taglib</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.comment.taglib</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.frontend.taglib</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.frontend.taglib.dynamic.section</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.frontend.taglib.form.navigator</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.frontend.taglib.util</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.journal.taglib</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.layout.taglib</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.site.taglib</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>com.liferay.portal.kernel</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>com.liferay.util.taglib</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.portlet</groupId>
<artifactId>portlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.component.annotations</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
<version>4.3.0</version>
<executions>
<execution>
<goals>
<goal>bnd-process</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>biz.aQute.bnd</groupId>
<artifactId>biz.aQute.bndlib</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.ant.bnd</artifactId>
<version>3.2.3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.css.builder</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<baseDir>src/main/resources/META-INF/resources</baseDir>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
<excludes>
<exclude>**/META-INF/resources/**/.sass-cache/</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
我的 Liferay 项目针对 7.3.4,具有以下 pom:
这个 pom 包含 javax.portlet 的以下版本:
<dependency>
<groupId>javax.portlet</groupId>
<artifactId>portlet-api</artifactId>
<version>3.0.0</version>
</dependency>
然而,我自动生成的 view.jsp 中的 taglib 如下:
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>
也就是说,Maven 说 Java Portlet v3.0,而 taglib 说 portlet v2.0。不确定这是否是问题所在,到目前为止,我的研究还没有找到合适的解决方案。
好奇其他人是否看到过同样的问题,以及它是如何解决的。
谢谢,兰迪
解决方案
推荐阅读
- python - 删除从视图集上的路由器生成的未使用的lookup_field
- sql - 当希望在单列中包含单行数据时,如何连接一个简单的左连接将产生多行的表?
- javascript - 如何使用js的功能删除HTML部分?
- c# - 如何在 C# 和 .NET Framework 中显示以用户输入开头的数字列表?
- deployment - 通过 fab.dev 部署时找不到操作模块?
- c++ - 使用 Dev C++ 加载图像
- javascript - 如何在 discord.js 中获取最新消息?
- swift - ARKit 绘制带圆角的 3D 纸飞机
- ionic3 - 在日期前 2 天安排本地通知(由用户选择)
- ios - 如何跟踪 TextField 中最后输入的字符?