Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP自定义标记库_Java_Jsp_Liferay - Fatal编程技术网

Java JSP自定义标记库

Java JSP自定义标记库,java,jsp,liferay,Java,Jsp,Liferay,我正在Liferay 7中运行,但我正在尝试创建自定义标记,但在尝试运行它时不断出现此错误 [fileinstall-/Development/liferay-ce-portal-7.0-ga3/osgi/war][org_apache_felix_fileinstall:103] Error while starting bundle: webbundle:file:/Development/liferay-ce-portal-7.0-ga3/osgi/war/digital-lexicon-

我正在Liferay 7中运行,但我正在尝试创建自定义标记,但在尝试运行它时不断出现此错误

[fileinstall-/Development/liferay-ce-portal-7.0-ga3/osgi/war][org_apache_felix_fileinstall:103] Error while starting bundle: webbundle:file:/Development/liferay-ce-portal-7.0-ga3/osgi/war/digital-lexicon-portlet-7.0.0.1.war?Bundle-SymbolicName=digital-lexicon-portlet&Web-ContextPath=/digital-lexicon-portlet 
org.osgi.framework.BundleException: Could not resolve module: digital-lexicon-portlet [587]_  Unresolved requirement: Import-Package: com.swabunga.spell.engine; resolution:="optional"_  Unresolved requirement: Import-Package: com.swabunga.spell.event; resolution:="optional"_  Unresolved requirement: Import-Package: net.fortuna.ical4j.model; resolution:="optional"_  Unresolved requirement: Import-Package: net.fortuna.ical4j.model.property; resolution:="optional"_  Unresolved requirement: Import-Package: org.apache.axis.tools.ant.wsdl; resolution:="optional"_  Unresolved requirement: Import-Package: org.apache.bsf; resolution:="optional"_  Unresolved requirement: Import-Package: org.apache.poi.hssf.usermodel; resolution:="optional"_  Unresolved requirement: Import-Package: org.apache.poi.ss.usermodel; resolution:="optional"_  Unresolved requirement: Import-Package: org.apache.portals.bridges.common; resolution:="optional"_  Unresolved requirement: Import-Package: org.apache.portals.bridges.struts; resolution:="optional"_  Unresolved requirement: Require-Capability: osgi.extender; filter:="(&(osgi.extender=jsp.taglib)(uri=/WEB-INF/tld/tile.tld))"_ [Sanitized]
at org.eclipse.osgi.container.Module.start(Module.java:429)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:402)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1252)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1224)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:313)
我遵循了教程,我的结构如下所示:

docroot/WEB-INF/src
  com.lexicon
    - TileTag.java
  com.liferay.docs.lexicon.portlet
    - LexiconPortlet.java
package com.liferay.docs.lexicon.portlet;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;

public class TileTag extends SimpleTagSupport {

  public void doTag() throws JspException, IOException {
    JspWriter out = getJspContext().getOut();
    out.println("Hello Custom Tag!");
  }
}
<?xml version="1.0"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>2.0</jsp-version>
  <short-name>UI Tile</short-name>
  <tag>
    <name>tile</name>
    <tag-class>com.liferay.docs.lexicon.portlet.TileTag</tag-class>
    <body-content>empty</body-content>
  </tag>
我的
TileTag.java
如下所示:

docroot/WEB-INF/src
  com.lexicon
    - TileTag.java
  com.liferay.docs.lexicon.portlet
    - LexiconPortlet.java
package com.liferay.docs.lexicon.portlet;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;

public class TileTag extends SimpleTagSupport {

  public void doTag() throws JspException, IOException {
    JspWriter out = getJspContext().getOut();
    out.println("Hello Custom Tag!");
  }
}
<?xml version="1.0"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>2.0</jsp-version>
  <short-name>UI Tile</short-name>
  <tag>
    <name>tile</name>
    <tag-class>com.liferay.docs.lexicon.portlet.TileTag</tag-class>
    <body-content>empty</body-content>
  </tag>
我的
docroot/WEB-INF/tld/tile.tld
如下所示:

docroot/WEB-INF/src
  com.lexicon
    - TileTag.java
  com.liferay.docs.lexicon.portlet
    - LexiconPortlet.java
package com.liferay.docs.lexicon.portlet;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;

public class TileTag extends SimpleTagSupport {

  public void doTag() throws JspException, IOException {
    JspWriter out = getJspContext().getOut();
    out.println("Hello Custom Tag!");
  }
}
<?xml version="1.0"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>2.0</jsp-version>
  <short-name>UI Tile</short-name>
  <tag>
    <name>tile</name>
    <tag-class>com.liferay.docs.lexicon.portlet.TileTag</tag-class>
    <body-content>empty</body-content>
  </tag>

我遇到了几乎完全相同的情况。我正在将一个JBossPortalPortlet项目移植到Liferay Portal/Wildfly环境中,该项目将生成一个war文件,并且可以完美地工作。当我移除提供包net.fortuna.ical4j.model的Anwhere jar时,它不在osgi的类路径中请原谅,我对Java非常陌生,但我进入了OSGi框架运行配置,确保检查了所有捆绑包,甚至对它们进行了验证,并添加了所有必需的捆绑包。@JoshChristensen错误似乎不是来自标记,而是来自使用缺少的导入的其他类。检查捆绑包导入依赖项是否有任何缺少的类清单中没有任何内容,
manifest版本:1.0类路径:
当我删除视图中的行并重新发布时,它工作正常