You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@wink.apache.org by ccomstock <ch...@influen.se> on 2012/06/25 03:59:00 UTC

Throw Exception from Resource Class

Throwing an exception in a resource class does not generate a response, it
just logs the error. The exceptions are working and the response is
generated in my user handler.  Is there anything to do to make this work in
the resource class?

Here is my method in the resource class:

	@Path("debug")
	@GET
	//@Consumes(MediaType.APPLICATION_JSON)
	@Produces(MediaType.APPLICATION_JSON)
	public Response getTestContext2()  {
	
			if(true){
//				 throw new ResponseException(new CustomError(
//						   "Test Error"));
				 throw new WebApplicationException(Response.status(499).entity("can not
write type")
			                .type("text/plain").build());
			}	
		
		return Response.status(201).entity("Test response").build();
	}

Stack trace:

Path: recommend/debug
javax.ws.rs.WebApplicationException
        at
com.influense.wink.resource.RecommendResource.getTestContext2(RecommendResource.java:114)
        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.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)
        at
org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
com.influense.wink.handler.OauthRequestHandler.handleRequest(OauthRequestHandler.java:86)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceMethod(FindResourceMethodHandler.java:183)
        at
org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:110)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.internal.handlers.OptionsMethodHandler.handleRequest(OptionsMethodHandler.java:46)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
        at
org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
        at
org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:48)
        at
org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207)
        at
org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)
        at
org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:119)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)


--
View this message in context: http://apache-wink-users.3471013.n2.nabble.com/Throw-Exception-from-Resource-Class-tp7572586.html
Sent from the Apache Wink Users mailing list archive at Nabble.com.

RE: Throw Exception from Resource Class

Posted by ccomstock <ch...@influen.se>.
I actually have done this (commented out line to the ResponseException) but
the response to the client is nothing, it is not be handled.  I thought if
you threw a general WebApplicationException it would make it back to the
client and the exception mapper was more for customizing the response.

The strange behavior is my exceptionmapper is working in a custom request
handler with no issues.

--
View this message in context: http://apache-wink-users.3471013.n2.nabble.com/Throw-Exception-from-Resource-Class-tp7572586p7572589.html
Sent from the Apache Wink Users mailing list archive at Nabble.com.

RE: Throw Exception from Resource Class

Posted by Paulo Borges <ab...@hotmail.com>.
You need to define an exception mapper and register it. 

> Date: Sun, 24 Jun 2012 18:59:00 -0700
> From: chris@influen.se
> To: wink-user@incubator.apache.org
> Subject: Throw Exception from Resource Class
> 
> Throwing an exception in a resource class does not generate a response, it
> just logs the error. The exceptions are working and the response is
> generated in my user handler.  Is there anything to do to make this work in
> the resource class?
> 
> Here is my method in the resource class:
> 
> 	@Path("debug")
> 	@GET
> 	//@Consumes(MediaType.APPLICATION_JSON)
> 	@Produces(MediaType.APPLICATION_JSON)
> 	public Response getTestContext2()  {
> 	
> 			if(true){
> //				 throw new ResponseException(new CustomError(
> //						   "Test Error"));
> 				 throw new WebApplicationException(Response.status(499).entity("can not
> write type")
> 			                .type("text/plain").build());
> 			}	
> 		
> 		return Response.status(201).entity("Test response").build();
> 	}
> 
> Stack trace:
> 
> Path: recommend/debug
> javax.ws.rs.WebApplicationException
>         at
> com.influense.wink.resource.RecommendResource.getTestContext2(RecommendResource.java:114)
>         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.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)
>         at
> org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> com.influense.wink.handler.OauthRequestHandler.handleRequest(OauthRequestHandler.java:86)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceMethod(FindResourceMethodHandler.java:183)
>         at
> org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:110)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.internal.handlers.OptionsMethodHandler.handleRequest(OptionsMethodHandler.java:46)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
>         at
> org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:63)
>         at
> org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:48)
>         at
> org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207)
>         at
> org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)
>         at
> org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:119)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 
> 
> --
> View this message in context: http://apache-wink-users.3471013.n2.nabble.com/Throw-Exception-from-Resource-Class-tp7572586.html
> Sent from the Apache Wink Users mailing list archive at Nabble.com.