2

Currently my pages are returning errors since I've begun implementing XPM into are JSP environment. The component links seems to be the problem here. It was working fine several days ago, now we continiously get these Tomcat errors:

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)

Weirdly enough, the componentlinks on the plain JSP file are there, including the 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"/> 

as well as properly including the cd_tags lib into every seperate page template, along with the proper core references:

<%@ 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" %>

I've tried searching for the error, but there's no Tridion context-specific solution. I'm currently looking into resetting/reconfiguring component linking, but I'm not entirely sure if there's anything wrong in the configs in the first place. Any ideas would be fantastic.

Daniel Neagu
  • 1,711
  • 11
  • 13
MDa
  • 579
  • 2
  • 10

2 Answers2

3

That link is for the .NET control -- not the JSP tag library.

Maybe someone changed the Target Language on the Publication Target you are using (or it's published to the wrong target)? Another possibility is that it is hard-coded in the template instead of using TCDL.

Peter Kjaer
  • 4,316
  • 13
  • 23
  • That's interesting. What 'link' do you mean, the taglib, or the tridion:ComponentLink? The publishing target lang is JSP and the complinks are created with tridion:href... – MDa Feb 11 '13 at 11:55
  • The tridion:ComponentLink. You can tell by the casing of the letters and the @runat attribute. – Peter Kjaer Feb 11 '13 at 12:08
  • Indeed. This is really weird. We had two different uploads, one .NET (ASPX), and one JSP. We only use JSP now. Is it possible one interferes with the other? And how come the output turns into .NET? Are my componentlinks referenced in my templates incorrect? – MDa Feb 11 '13 at 12:20
  • I mentioned a few possible reasons in my answer -- you'll need to check the Template and Publication Targets to find the reason. If your template has tcdl:componentlink in it, it will automatically output the right markup based on the Target Language in the Publication Target that you are publishing to. If someone published the Page to an old target, and your template uses TCDL markup, that would explain it. – Peter Kjaer Feb 11 '13 at 13:39
0

Thanks to Peter Kjaer pointing me in the direction, this issue is now solved. It is not, however, due to publication targets and language (since they were set correctly - but I wouldn't completely rule out the possibilty of pubtargets conflicting).

The issue turned out to be the deployer_conf xml file on the HTTP upload server role, with its (default) lines within the TCDLEngine node - Properties.

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

As you can see, I commented the dotnet line. It will now properly resolve links, as well as componentlinks not including 'runat's anymore.

MDa
  • 579
  • 2
  • 10