hmm, to be honest I never considered this situation of having custom tags
in the plugin jar.
I am not sure if that can be fixed, I would have to dive into that a bit
more..

regards,
Harry
 Op 26 feb. 2014 16:33 schreef "Brian Burch" <br...@pingtoo.com>:

> On 25/02/14 20:41, Harry Metske wrote:
>
>> Brian,
>>
>> first, the value for jspwiki.plugin.externalJars should probably be an
>> absolute path.
>> And secondly, that could be the cause of the problem, you should not put
>> your photocollection.jar in a directory that is already on tomcat's
>> classpath (given it's name, /var/lib/tomcat7/lib looks like the lib folder
>> for your classpath ?).
>>
>> So, could you try something like /tmp/photocollection.jar ?
>>
> <snip/>
>
> Thanks for looking at the problem for me, Harry.
>
> I didn't realise jspwiki was using its own ClassLoader, so I now see why
> the situation was confused when I put my jar into a directory where one of
> the tomcat ClassLoaders would find it first.
>
> I am now using:
>
> jspwiki.plugin.externalJars = /var/lib/tomcat7/extra-lib/
> photocollection.jar
>
> ... and jspwiki is successfully finding and using my plugin.
>
> The bad news is that my plugin jar also contains my custom taglib, which
> is needed by my custom template css. The tags cannot be found and so the
> wiki html looks pretty strange!
>
> It seems as if a different ClassLoader is responsible for finding
> taglibs...
>
> 2014-02-26 15:15:13,692 ERROR [org.apache.catalina.core.
> ContainerBase.[Catalina].[www2.pingtoo.com].[/wiki].[jsp]]
> Servlet.service() for servlet jsp threw exception
> java.lang.ClassNotFoundException: com.pingtoo.jspwiki.tags.
> PhotoPageNameTag
>         at org.apache.catalina.loader.WebappClassLoader.loadClass(
> WebappClassLoader.java:1718)
>         at org.apache.catalina.loader.WebappClassLoader.loadClass(
> WebappClassLoader.java:1569)
>         at org.apache.jasper.servlet.JasperLoader.loadClass(
> JasperLoader.java:126)
>         at org.apache.jasper.servlet.JasperLoader.loadClass(
> JasperLoader.java:63)
>         at org.apache.jsp.templates.photoCollection.Header_jsp._
> jspx_meth_photo_005fPhotoPageName_005f0(Header_jsp.java:360)
>         at org.apache.jsp.templates.photoCollection.Header_jsp._
> jspService(Header_jsp.java:214)
>         at org.apache.jasper.runtime.HttpJspBase.service(
> HttpJspBase.java:70)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>         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:727)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:303)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke(
> ApplicationDispatcher.java:748)
>         at org.apache.catalina.core.ApplicationDispatcher.doInclude(
> ApplicationDispatcher.java:604)
>         at org.apache.catalina.core.ApplicationDispatcher.include(
> ApplicationDispatcher.java:543)
>         at org.apache.jasper.runtime.JspRuntimeLibrary.include(
> JspRuntimeLibrary.java:954)
>         at org.apache.jasper.runtime.PageContextImpl.include(
> PageContextImpl.java:656)
>         at org.apache.wiki.tags.IncludeTag.doEndTag(IncludeTag.java:84)
>         at org.apache.jsp.templates.photoCollection.ViewTemplate_
> jsp._jspx_meth_wiki_005fInclude_005f1(ViewTemplate_jsp.java:523)
>         at org.apache.jsp.templates.photoCollection.ViewTemplate_
> jsp._jspService(ViewTemplate_jsp.java:138)
>         at org.apache.jasper.runtime.HttpJspBase.service(
> HttpJspBase.java:70)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>         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:727)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:303)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke(
> ApplicationDispatcher.java:748)
>         at org.apache.catalina.core.ApplicationDispatcher.doInclude(
> ApplicationDispatcher.java:604)
>         at org.apache.catalina.core.ApplicationDispatcher.include(
> ApplicationDispatcher.java:543)
>         at org.apache.jasper.runtime.JspRuntimeLibrary.include(
> JspRuntimeLibrary.java:954)
>         at org.apache.jasper.runtime.PageContextImpl.include(
> PageContextImpl.java:656)
>         at org.apache.wiki.tags.IncludeTag.doEndTag(IncludeTag.java:84)
>         at org.apache.jsp.Wiki_jsp._jspService(Wiki_jsp.java:122)
>         at org.apache.jasper.runtime.HttpJspBase.service(
> HttpJspBase.java:70)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>         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:727)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:303)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.tomcat.websocket.server.WsFilter.doFilter(
> WsFilter.java:52)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:241)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.wiki.ui.WikiServletFilter.doFilter(
> WikiServletFilter.java:177)
>         at org.apache.wiki.ui.WikiJSPFilter.doFilter(
> WikiJSPFilter.java:121)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:241)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:220)
>         at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:122)
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(
> AuthenticatorBase.java:610)
>         at org.apache.catalina.core.StandardHostValve.invoke(
> StandardHostValve.java:170)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(
> ErrorReportValve.java:98)
>         at org.apache.catalina.authenticator.SingleSignOn.
> invoke(SingleSignOn.java:339)
>         at org.apache.catalina.valves.AccessLogValve.invoke(
> AccessLogValve.java:950)
>         at org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:116)
>         at org.apache.catalina.connector.CoyoteAdapter.service(
> CoyoteAdapter.java:408)
>         at org.apache.coyote.http11.AbstractHttp11Processor.process(
> AbstractHttp11Processor.java:1040)
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
> process(AbstractProtocol.java:607)
>         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
> doRun(NioEndpoint.java:1721)
>         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
> run(NioEndpoint.java:1679)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:744)
> 2014-02-26 15:15:13,702 WARN  [org.apache.wiki.tags.IncludeTag] Including
> failed, got a servlet exception from sub-page. Rethrowing the exception to
> the JSP engine.
> org.apache.jasper.JasperException: javax.servlet.ServletException:
> java.lang.NoClassDefFoundError: com/pingtoo/jspwiki/tags/PhotoPageNameTag
>         at org.apache.jasper.servlet.JspServletWrapper.handleJspException(
> JspServletWrapper.java:549)
>         at org.apache.jasper.servlet.JspServletWrapper.service(
> JspServletWrapper.java:455)
>         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:727)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:303)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke(
> ApplicationDispatcher.java:748)
>         at org.apache.catalina.core.ApplicationDispatcher.doInclude(
> ApplicationDispatcher.java:604)
>         at org.apache.catalina.core.ApplicationDispatcher.include(
> ApplicationDispatcher.java:543)
>         at org.apache.jasper.runtime.JspRuntimeLibrary.include(
> JspRuntimeLibrary.java:954)
>         at org.apache.jasper.runtime.PageContextImpl.include(
> PageContextImpl.java:656)
>         at org.apache.wiki.tags.IncludeTag.doEndTag(IncludeTag.java:84)
>         at org.apache.jsp.templates.photoCollection.ViewTemplate_
> jsp._jspx_meth_wiki_005fInclude_005f1(ViewTemplate_jsp.java:523)
>         at org.apache.jsp.templates.photoCollection.ViewTemplate_
> jsp._jspService(ViewTemplate_jsp.java:138)
>         at org.apache.jasper.runtime.HttpJspBase.service(
> HttpJspBase.java:70)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>         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:727)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:303)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke(
> ApplicationDispatcher.java:748)
>         at org.apache.catalina.core.ApplicationDispatcher.doInclude(
> ApplicationDispatcher.java:604)
>         at org.apache.catalina.core.ApplicationDispatcher.include(
> ApplicationDispatcher.java:543)
>         at org.apache.jasper.runtime.JspRuntimeLibrary.include(
> JspRuntimeLibrary.java:954)
>         at org.apache.jasper.runtime.PageContextImpl.include(
> PageContextImpl.java:656)
>         at org.apache.wiki.tags.IncludeTag.doEndTag(IncludeTag.java:84)
>         at org.apache.jsp.Wiki_jsp._jspService(Wiki_jsp.java:122)
>         at org.apache.jasper.runtime.HttpJspBase.service(
> HttpJspBase.java:70)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>         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:727)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:303)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.tomcat.websocket.server.WsFilter.doFilter(
> WsFilter.java:52)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:241)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.wiki.ui.WikiServletFilter.doFilter(
> WikiServletFilter.java:177)
>         at org.apache.wiki.ui.WikiJSPFilter.doFilter(
> WikiJSPFilter.java:121)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:241)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:220)
>         at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:122)
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(
> AuthenticatorBase.java:610)
>         at org.apache.catalina.core.StandardHostValve.invoke(
> StandardHostValve.java:170)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(
> ErrorReportValve.java:98)
>         at org.apache.catalina.authenticator.SingleSignOn.
> invoke(SingleSignOn.java:339)
>         at org.apache.catalina.valves.AccessLogValve.invoke(
> AccessLogValve.java:950)
>         at org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:116)
>         at org.apache.catalina.connector.CoyoteAdapter.service(
> CoyoteAdapter.java:408)
>         at org.apache.coyote.http11.AbstractHttp11Processor.process(
> AbstractHttp11Processor.java:1040)
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
> process(AbstractProtocol.java:607)
>         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
> doRun(NioEndpoint.java:1721)
>         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
> run(NioEndpoint.java:1679)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:744)
>
> <and-so-on/>
>
>
> I wonder whether "war surgery" is an inevitable consequence of having
> contributed plugins that are not distributed inside the jspwiki war file? I
> don't think my plugin is unusual by needing additional css styles and tags,
> as well as the plugin itself. At the moment, these all need to be grafted
> into the deployed webapp directory structure.
>
> Sorry to be a nuisance,
>
> Brian
>

Reply via email to