users@jersey.java.net

RE: [Jersey] Cannot Instantiate new provider

From: Jonathan Cook - FM&T <Jonathan.Cook2_at_bbc.co.uk>
Date: Fri, 19 Jun 2009 12:32:51 +0100

This is the complete trace. But the stack trace is a result of the
failed instantiation. Strange it works on localhost.
 
 
2009-06-19 12:30:31.226::DEBUG: REQUEST /football/includepathgenerator
on org.mortbay.jetty.HttpConnection_at_4e68fb
2009-06-19 12:30:31.226::DEBUG:
servlet=com.sun.ws.rest.spi.container.servlet.ServletContainer-23686363
2009-06-19 12:30:31.226::DEBUG: chain=null
2009-06-19 12:30:31.226::DEBUG: servlet
holder=com.sun.ws.rest.spi.container.servlet.ServletContainer-23686363
19-Jun-2009 12:30:31 com.sun.ws.rest.api.core.PackagesResourceConfig
init
INFO: Scanning for root resource and provider classes in the packages:
  com.bbc.newsi.feeds.sport.webservice.football.resources
  com.bbc.newsi.feeds.sport.webservice.providers
19-Jun-2009 12:30:31 com.sun.ws.rest.api.core.PackagesResourceConfig
init
INFO: Root resource classes found:
  class
com.bbc.newsi.feeds.sport.webservice.football.resources.FootballMatchRes
ource
  class
com.bbc.newsi.feeds.sport.webservice.football.resources.FootballResource
  class
com.bbc.newsi.feeds.sport.webservice.football.resources.FootballIncludeP
athGeneratorResource
  class
com.bbc.newsi.feeds.sport.webservice.football.resources.FootballFixtureR
esource
  class
com.bbc.newsi.feeds.sport.webservice.football.resources.FootballCompetit
ionResource
  class
com.bbc.newsi.feeds.sport.webservice.football.resources.FootballIncludeP
athsResource
  class
com.bbc.newsi.feeds.sport.webservice.football.resources.FootballCompetit
ionListResource
19-Jun-2009 12:30:31 com.sun.ws.rest.api.core.PackagesResourceConfig
init
INFO: Provider classes found:
  class
com.bbc.newsi.feeds.sport.webservice.providers.FreemarkerTemplateProcess
or
19-Jun-2009 12:30:31
com.sun.ws.rest.impl.application.ComponentProviderCache getComponent
WARNING: The provider class, class
com.bbc.newsi.feeds.sport.webservice.providers.FreemarkerTemplateProcess
or, could not
 be instantiated
2009-06-19 12:30:31.492::WARN: /football/includepathgenerator
java.io.IOException: The template name, /include_path_generator.ftl,
could not be resolved to the path of a template
        at
com.sun.ws.rest.impl.template.ViewableMessageBodyWriter.writeTo(Viewable
MessageBodyWriter.java:72)
        at
com.sun.ws.rest.impl.template.ViewableMessageBodyWriter.writeTo(Viewable
MessageBodyWriter.java:41)
        at
com.sun.ws.rest.spi.container.AbstractContainerResponse.writeEntity(Abst
ractContainerResponse.java:258)
        at
com.sun.ws.rest.spi.container.AbstractContainerResponse.writeEntity(Abst
ractContainerResponse.java:235)
        at
com.sun.ws.rest.impl.container.servlet.HttpResponseAdaptor.commitAll(Htt
pResponseAdaptor.java:127)
        at
com.sun.ws.rest.spi.container.servlet.ServletContainer.service(ServletCo
ntainer.java:141)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at
org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:320)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConne
ction.java:828)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
        at
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.jav
a:228)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.ja
va:450)
2009-06-19 12:30:31.507::DEBUG: GET /football/includepathgenerator
HTTP/1.1
Accept: */*
Accept-Language: en-gb
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET
CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.
04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: noldev40:8081
Connection: Keep-Alive
Cache-Control: no-cache
 

2009-06-19 12:30:31.523::DEBUG: RESPONSE /football/includepathgenerator
500

________________________________

From: Paul.Sandoz_at_Sun.COM [mailto:Paul.Sandoz_at_Sun.COM]
Sent: 19 June 2009 12:20
To: users_at_jersey.dev.java.net
Cc: Jonathan Cook - FM&T
Subject: Re: [Jersey] Cannot Instantiate new provider



On Jun 19, 2009, at 12:51 PM, Jonathan Cook - FM&T wrote:


        Hi,
         
        I have a problem were I have written my own
FreeMarkerTemplateProcessor. Everything works nicely but when I deploy
my application it registers the new provider successfully but then it
complains that it can't instantiate the new class and then goes on to
fail I assume because it can't do the freemarker initialisation.
         
        19-Jun-2009 11:11:58
com.sun.ws.rest.api.core.PackagesResourceConfig init
        INFO: Provider classes found:
          class
com.bbc.newsi.feeds.sport.webservice.providers.FreemarkerTemplateProcess
        or
        19-Jun-2009 11:11:58
com.sun.ws.rest.impl.application.ComponentProviderCache get
        Component
        WARNING: The provider class, class
com.bbc.newsi.feeds.sport.webservice.provider
        s.FreemarkerTemplateProcessor, could not be instantiated


Is any stack trace provided as to why it cannot instantiate?

Can you send the code for the class?



        
        2009-06-19 11:11:58.110::WARN: /football/includepathgenerator:
java.io.IOExcept
        ion: The template name, /include_path_generator.ftl, could not
be resolved to th
        e path of a template
         
        Should I have a default constructor explicitly in the class? Is
there some condition when accessing the application remotely that the
templateprocessor won't get instantiated because as I say it all works
locally? I'm using an embedded instance of jetty as the web server.
        
        


Are your dependencies correct for the remote deployment?

Paul.



         
        I'm using the following annotations at the top of the class:
        @Provider
        @Singleton
         
        Any ideas?
         
        Thanks
        Jonathan