"Error 500 Could not find a template of type..." ?

10 views
Skip to first unread message

Dmitry G

unread,
Oct 31, 2011, 2:37:22 PM10/31/11
to Bowler Users
I'm trying to hit my restful service with a request
(org.bowlerframework / core_2.9.1 / 0.5) and getting the error as
below.

I don't want to do any templating at this point; what is the minimum
set of things I need to do to get an http request processing roundtrip
going?

All I'm doing is basically this

class MyController extends Controller with
FunctionNameConventionRoutes with Renderable {

def `GET /hello` = render("Hello, world")


The error is as follows

java.lang.Exception: '<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1"/>
<title>Error 500 Could not find a template of
type .html, .xhtml, .xml, .mustache, .ssp, .jade or .scaml with path:
classpath:///views/GET/hello/index</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /hello. Reason:
<pre> Could not find a template of
type .html, .xhtml, .xml, .mustache, .ssp, .jade or .scaml with path:
classpath:///views/GET/hello/index</pre></p><h3>Caused by:</
h3><pre>java.io.IOException: Could not find a template of
type .html, .xhtml, .xml, .mustache, .ssp, .jade or .scaml with path:
classpath:///views/GET/hello/index
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:103)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:114)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:114)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:114)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:114)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:104)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:114)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:114)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:114)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResource(TemplateResolver.scala:114)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveResource(ClasspathTemplateResolver.scala:
7)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveResourceWithSuffix(TemplateResolver.scala:78)
at org.bowlerframework.view.scalate.TemplateResolver
$class.resolveViewTemplate(TemplateResolver.scala:29)
at
org.bowlerframework.view.scalate.ClasspathTemplateResolver.resolveViewTemplate(ClasspathTemplateResolver.scala:
7)
at
org.bowlerframework.view.scalate.ScalateViewRenderer.render(ScalateViewRenderer.scala:
24)
at org.bowlerframework.view.scalate.BrowserViewRenderer
$class.renderView(BrowserViewRenderer.scala:56)
at
org.bowlerframework.view.scalate.ScalateViewRenderer.renderView(ScalateViewRenderer.scala:
10)
at org.bowlerframework.view.Renderable
$class.renderSeq(Renderable.scala:67)
at org.bowlerframework.view.Renderable$class.render(Renderable.scala:
60)
at com.sampleservice.MyController.render(MyController.scala:14)
at com.sampleservice.MyController.GET
$u0020$divhello(MyController.scala:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.bowlerframework.controller.POSORouteMapper$$anonfun
$4.apply(POSORouteMapper.scala:121)
at org.bowlerframework.controller.POSORouteMapper$$anonfun
$4.apply(POSORouteMapper.scala:83)
at org.bowlerframework.controller.POSORouteMapper$$anonfun
$registerMember$1.apply(POSORouteMapper.scala:39)
at org.bowlerframework.controller.POSORouteMapper$$anonfun
$registerMember$1.apply(POSORouteMapper.scala:39)
at org.bowlerframework.controller.Controller$$anonfun$get
$1.apply(Controller.scala:22)
at org.bowlerframework.controller.Controller$$anonfun$get
$1.apply(Controller.scala:22)
at org.bowlerframework.RequestScope$$anonfun$executeRoute$1$$anonfun
$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV
$sp(RequestScope.scala:24)
at org.bowlerframework.RequestScope$$anonfun$executeRoute$1$$anonfun
$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(RequestScope.scala:23)
at org.bowlerframework.RequestScope$$anonfun$executeRoute$1$$anonfun
$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(RequestScope.scala:23)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.bowlerframework.RequestScope$$anonfun$executeRoute$1$$anonfun
$apply$mcV$sp$1.apply$mcV$sp(RequestScope.scala:22)
at org.bowlerframework.RequestScope$$anonfun$executeRoute$1$$anonfun
$apply$mcV$sp$1.apply(RequestScope.scala:22)
at org.bowlerframework.RequestScope$$anonfun$executeRoute$1$$anonfun
$apply$mcV$sp$1.apply(RequestScope.scala:22)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.bowlerframework.RequestScope$$anonfun$executeRoute$1.apply$mcV
$sp(RequestScope.scala:21)
at org.bowlerframework.RequestScope$$anonfun$executeRoute
$1.apply(RequestScope.scala:21)
at org.bowlerframework.RequestScope$$anonfun$executeRoute
$1.apply(RequestScope.scala:21)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.bowlerframework.RequestScope$.executeRoute(RequestScope.scala:
20)
at
org.bowlerframework.controller.DefaultRouteExecutor.executeRoute(Controller.scala:
57)
at org.bowlerframework.http.BowlerFilter.org$bowlerframework$http
$BowlerFilter$$mapExecutor(BowlerFilter.scala:79)
at org.bowlerframework.http.BowlerFilter$$anonfun$addApplicationRoute
$1.apply(BowlerFilter.scala:27)
at org.scalatra.ScalatraKernel$$anonfun$invoke
$1.apply(ScalatraKernel.scala:211)
at org.scalatra.ScalatraKernel$$anonfun$invoke
$1.apply(ScalatraKernel.scala:210)
at org.scalatra.ScalatraKernel
$class.withRouteMultiParams(ScalatraKernel.scala:270)
at
org.bowlerframework.http.BowlerFilter.withRouteMultiParams(BowlerFilter.scala:
10)
at org.scalatra.ScalatraKernel$class.invoke(ScalatraKernel.scala:209)
at org.bowlerframework.http.BowlerFilter.invoke(BowlerFilter.scala:
10)
at org.scalatra.ScalatraKernel$$anonfun$runRoutes$1$$anonfun$apply
$2.apply(ScalatraKernel.scala:195)
at org.scalatra.ScalatraKernel$$anonfun$runRoutes$1$$anonfun$apply
$2.apply(ScalatraKernel.scala:194)
at scala.Option.flatMap(Option.scala:146)
at org.scalatra.ScalatraKernel$$anonfun$runRoutes
$1.apply(ScalatraKernel.scala:194)
at org.scalatra.ScalatraKernel$$anonfun$runRoutes
$1.apply(ScalatraKernel.scala:193)
at scala.collection.immutable.Stream.flatMap(Stream.scala:217)
at org.scalatra.ScalatraKernel$class.runRoutes(ScalatraKernel.scala:
193)
at org.bowlerframework.http.BowlerFilter.runRoutes(BowlerFilter.scala:
10)
at org.scalatra.ScalatraKernel
$class.executeRoutes(ScalatraKernel.scala:164)
at
org.bowlerframework.http.BowlerFilter.executeRoutes(BowlerFilter.scala:
10)
at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp
$1.apply$mcV$sp(ScalatraKernel.scala:138)
at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp
$1.apply(ScalatraKernel.scala:136)
at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp
$1.apply(ScalatraKernel.scala:136)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraKernel$$anonfun$handle$1.apply$mcV
$sp(ScalatraKernel.scala:136)
at org.scalatra.ScalatraKernel$$anonfun$handle
$1.apply(ScalatraKernel.scala:136)
at org.scalatra.ScalatraKernel$$anonfun$handle
$1.apply(ScalatraKernel.scala:136)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraKernel$class.handle(ScalatraKernel.scala:135)
at org.bowlerframework.http.BowlerFilter.org$scalatra$fileupload
$FileUploadSupport$$super$handle(BowlerFilter.scala:10)
at org.scalatra.fileupload.FileUploadSupport
$class.handle(FileUploadSupport.scala:39)
at org.bowlerframework.http.BowlerFilter.handle(BowlerFilter.scala:
10)
at org.scalatra.ScalatraFilter$$anonfun$doFilter$1.apply$mcV
$sp(ScalatraFilter.scala:30)
at org.scalatra.ScalatraFilter$$anonfun$doFilter
$1.apply(ScalatraFilter.scala:30)
at org.scalatra.ScalatraFilter$$anonfun$doFilter
$1.apply(ScalatraFilter.scala:30)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalatra.ScalatraFilter$class.doFilter(ScalatraFilter.scala:
29)
at org.bowlerframework.http.BowlerFilter.doFilter(BowlerFilter.scala:
10)
at org.eclipse.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1323)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:
476)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:
223)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:
937)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:
406)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:
183)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:
871)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:
117)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:
110)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:
589)
at org.eclipse.jetty.server.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:1048)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:601)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:
214)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:
411)
at org.eclipse.jetty.server.LocalConnector
$Request.run(LocalConnector.java:128)
at org.eclipse.jetty.util.thread.QueuedThreadPool
$3.run(QueuedThreadPool.java:529)
at java.lang.Thread.run(Thread.java:680)

Wille Faler

unread,
Oct 31, 2011, 2:49:51 PM10/31/11
to bowler...@googlegroups.com
Hi,
The render method will automatically try to negotiate the right content-type for you based on your clients Accept http header.
If it decides that the content should not be application/json it will by default try to look up a template from your classpath.

However if you just wish to render "Hello world" without getting a template, it is better to just do:
RequestScope.response.getWriter.write("Hello, world.")
Reply all
Reply to author
Forward
0 new messages