Note that there are some explanatory texts on larger screens.

plurals
  1. POJasper in Equinox - does not resolve jstl core uri
    text
    copied!<p>I'm currently researching OSGi with Spring, and working through a couple of examples from <a href="http://rads.stackoverflow.com/amzn/click/1430216123" rel="nofollow noreferrer">Pro Spring Dynamic Modules for OSGi</a>.</p> <p>My example web-app has a single controller like:</p> <pre><code>@Controller public class HelloWorldController { private HelloWorldService helloWorldService; @RequestMapping(method = RequestMethod.GET) @ModelAttribute("helloworld") public HelloWorld home() { return this.helloWorldService.find(); } // injected in - spring looks up the service from OSGi public void setHelloWorldService(HelloWorldService helloWorldService) { this.helloWorldService = helloWorldService; } } </code></pre> <p>The view resolver is configured as:</p> <pre><code>&lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/&gt; &lt;property name="prefix" value="/jsp/" /&gt; &lt;property name="suffix" value=".jsp" /&gt; &lt;/bean&gt; </code></pre> <p>Calling on the url <code>'http://localhost:8080/helloworld-web/spring/home'</code> should cause the view <code>jsp/home.jsp</code> to be rendered, with <code>helloworld</code> containing a single bean:</p> <pre><code>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt; &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Spring DM HelloWorld&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;p&gt;Results from accessing Spring-DM service bundle:&lt;/p&gt; &lt;p&gt;Message &lt;c:out value="${helloworld.message}" /&gt;&lt;/p&gt; &lt;p&gt;Current Time: &lt;c:out value="${helloworld.currentTime}" /&gt;&lt;/p&gt; &lt;p&gt;Model Version: &lt;c:out value="${helloworld.modelVersion}" /&gt;&lt;/p&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>However, I am seeing the following stacktrace:</p> <pre><code>org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116) org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:317) org.apache.jasper.compiler.TagLibraryInfoImpl.&lt;init&gt;(TagLibraryInfoImpl.java:148) org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:424) org.apache.jasper.compiler.Parser.parseDirective(Parser.java:493) org.apache.jasper.compiler.Parser.parseElements(Parser.java:1557) org.apache.jasper.compiler.Parser.parse(Parser.java:127) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:212) org.apache.jasper.compiler.ParserController.parse(ParserController.java:101) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:156) org.apache.jasper.compiler.Compiler.compile(Compiler.java:296) org.apache.jasper.compiler.Compiler.compile(Compiler.java:277) org.apache.jasper.compiler.Compiler.compile(Compiler.java:265) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:236) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1183) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) </code></pre> <p>Because this is a WAR deployed as an OSGi bundle, its <code>WEB-INF/lib</code> directory is completely empty. </p> <p>My understanding was that the OSGi version of jasper would look for taglib descriptors and JARs outside of the individual web-app?</p> <p>Has anyone else seen this?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload