2

目前我的页面正在返回错误,因为我已经开始在 JSP 环境中实现 XPM。组件链接似乎是这里的问题。几天前它工作正常,现在我们不断收到这些 Tomcat 错误:

SEVERE: Servlet.service() for servlet [jsp] in context with path [/JSPStaging] threw exception [/en_nl/system/footer.jsp (line: 10, column: 8) According to the TLD or the tag file, attribute pageURI is mandatory for tag ComponentLink] with root cause org.apache.jasper.JasperException: /en_nl/system/footer.jsp (line: 10, column: 8) According to the TLD or the tag file, attribute pageURI is mandatory for tag ComponentLink
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:237)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:858)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1795)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
at org.apache.jsp.en_005fnl.index2_jsp._jspService(index2_jsp.java:137)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.tridion.preview.web.BinaryContentFilter.doFilter(BinaryContentFilter.java:55)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.tridion.preview.web.PageContentFilter.doFilter(PageContentFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.tridion.ambientdata.web.AmbientDataServletFilter.doFilter(AmbientDataServletFilter.java:255)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

奇怪的是,纯 JSP 文件上的组件链接在那里,包括 PageURI.:

<tridion:ComponentLink runat="server" PageURI="tcm:17-480-64" ComponentURI="tcm:17-795" TemplateURI="tcm:0-0-0" AddAnchor="false" LinkText="&lt;img src=&#34;/Images/women_edfd8f3453414ade82b7becaa0790386.jpg&#34;  alt=&#34;Woman #1&#34;&gt;" LinkAttributes="" TextOnFail="true"/> 

以及将 cd_tags 库正确包含到每个单独的页面模板中,以及正确的核心引用:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="cd_tags" prefix="tridion" %>

我已经尝试搜索错误,但没有 Tridion 特定于上下文的解决方案。我目前正在研究重置/重新配置组件链接,但我并不完全确定配置中是否有任何问题。任何想法都会很棒。

4

2 回答 2

3

该链接用于 .NET 控件,而不是 JSP 标记库。

也许有人更改了您正在使用的发布目标上的目标语言(或者它发布到错误的目标)?另一种可能性是它在模板中被硬编码,而不是使用 TCDL。

于 2013-02-11T11:50:51.397 回答
0

感谢 Peter Kjaer 为我指明了方向,这个问题现在已经解决了。然而,这不是由于发布目标和语言(因为它们设置正确 - 但我不会完全排除 pubtargets 冲突的可能性)。

问题原来是 HTTP 上传服务器角色上的 deployer_conf xml 文件,其(默认)行位于 TCDLEngine 节点 - 属性中。

<!--<Property Name="tcdl.dotnet.style" Value="controls"/>-->
<Property Name="tcdl.jsp.style" Value="tags"/>

如您所见,我评论了 dotnet 行。它现在可以正确解析链接,以及不再包含“runat”的组件链接。

于 2013-02-11T13:46:54.157 回答