users@jersey.java.net

[Jersey] Re: Twitter4j & Jersey: WebApplicationException

From: Mark Petrovic <mspetrovic_at_gmail.com>
Date: Sun, 6 Mar 2011 19:03:14 -0800

Is Tweet a JAXB-annotated class? If not, you need to serialize Tweet
yourself, and have your resource method return it as a String, or
provide a means for Jersey to serialize it using a MessageBodyWriter.

On Sun, Mar 6, 2011 at 6:43 PM, mahan_h <mahorad_at_gmail.com> wrote:
> Hello Gurus,
>
> I'm trying to create a service with jersey using twitter4j but when
> accessing the service to fetch even one twit (let alone a list of them), I
> get the following error:
>
> SEVERE: Internal server error
> javax.ws.rs.WebApplicationException
>        at
> com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:241)
>        at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
>        at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:647)
>        at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:638)
>        at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:309)
>        at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
>        at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:590)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>        at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
>        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        at java.lang.Thread.run(Thread.java:619)
> Mar 7, 2011 3:31:09 AM com.sun.jersey.spi.container.ContainerResponse write
> SEVERE: A message body writer for Java type, class twitter4j.TweetJSONImpl,
> and MIME media type, application/octet-stream, was not found
> Mar 7, 2011 3:31:09 AM
> com.sun.jersey.server.impl.application.WebApplicationImpl onException
> SEVERE: Internal server error
> javax.ws.rs.WebApplicationException
>        at
> com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:241)
>        at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:724)
>        at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:647)
>        at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:638)
>        at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:309)
>        at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:425)
>        at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:590)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>        at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
>        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        at java.lang.Thread.run(Thread.java:619)
>
>
>
> this is the service itself:
>
> @Path("search")
> public class TweetResource {
>
>        @GET
>        @Path("{phrase}")
>        public Tweet searchPhrase(@PathParam("phrase") String keyword) {
>                Twitter twitter = new TwitterFactory().getInstance();
>                List tweets = new ArrayList();
>                try {
>                        Query q = new Query(keyword);
>                        QueryResult result = twitter.search(q);
>                        tweets = result.getTweets();
>                } catch (TwitterException te) {
>                        te.printStackTrace();
>                        System.out.println("Failed to search tweets: " + te.getMessage());
>                }
>                return tweets.get(0);
>        }
> }
>
> --
> View this message in context: http://jersey.576304.n2.nabble.com/Twitter4j-Jersey-WebApplicationException-tp6095973p6095973.html
> Sent from the Jersey mailing list archive at Nabble.com.
>



-- 
Mark