Re: @Context not working for ResponseExceptionMapper

2011-09-29 Thread Sergey Beryozkin

Hi,

All the info you provided was very clear indeed,

have a look please at

http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java

check testServerWebApplicationExceptionXML.

ResponseReader just delegates to CXF and finds an appropriate provider 
for a response MediaType, I think this is what you need


Cheers, Sergey

On 29/09/11 20:45, Osvaldo Pina wrote:


   Hi Sergey,

   Sory to botter you again but I think I my poor command of the english
language is making my explanations about my problems much more
complicated than the problem itself. So I develop a unit test with a
simplified but similar scenario. Thanks a lot for your help!


   Ats,
   Osvaldo Pina.

On Thu, Sep 29, 2011 at 8:33 AM, Sergey Beryozkin mailto:sberyoz...@gmail.com>> wrote:

Hi

ResponseReader is still the provider you need to register.
I have a test which catches ServerWebApplicationException and
then does ex.toErrorObject(Book.class).
ResponseReader has to be registered once but you can set an expected
class on it every time you need to read from Response, directly or
indirectly

Cheers, Sergey



On 28/09/11 17:31, Osvaldo Pina wrote:

   Hi,

   Maybe the approach to my problem is driving me to a wrong
path. We are in
the process of changing all integration components from EJB2 to
Rest. In the
server side when a component exception is thrown I look at the
accept header
that was sent by the client to see if the client is a regular
web browser or
my rest client. If it was the web browser I render the response
as a HTML
error page but if It was my rest client (the rest client accepts
application/xml for regular response and
application/bc-serialized-__exception+xml for error response) I
render the
error as a xml with the java exception serialized in a base 64
format. In
the server I have a ExceptionMapper that do this exception to
HTML or
application/bc-serialized-__exception+xml translation. In the
client i get the
ServerWebApplicationException and use the method toErrorObject
to translate
the application/bc-serialized-__exception+xml back into the original
exception. When I discorered the ResponseExceptionMapper that
was designed
to do this task on the client side I decided to give it a try,
but the
Response object in ResponseExceptionMapper is a InputStream. So
the question
about message context was to give a way to acess the Providers
instance in
order to query for the responseReader for
application/bc-serialized-__exception+xml ( whitch I think will
return a
MessageBodyReader for xml). Summarizing the problem: In the
ResponseExceptionMapper I have to translate the exception which
is encoded
as application/bc-serialized-__exception+xml into the
corresponding java
object.
Sorry by the long email

thanks a lot,
Osvaldo Pina.

On Tue, Sep 27, 2011 at 7:05 PM, Sergey
Beryozkinmailto:sberyoz...@gmail.com>__>wrote:

Hi

Do you need some information about the outbound message in your
ResponseExceptionMapper ? It has a Response in parameter
that gives all the
info about the response message

Cheers, Sergey


On 26/09/11 21:51, Osvaldo Pina wrote:

   Hi,

   I´m trying to inject a @Context for a MessageContext
into a
ResponseExceptionMapper and I always get null for the
MessageContext
field.
Taking a look at the code I found that the code in
ProviderFactory class
is
not calling injectContexts into
responseExceptionMappers. This is correct?


   Ats,
   Osvaldo Pina.










Re: @Context not working for ResponseExceptionMapper

2011-09-29 Thread Osvaldo Pina
  Hi Sergey,

  Sory to botter you again but I think I my poor command of the english
language is making my explanations about my problems much more complicated
than the problem itself. So I develop a unit test with a simplified but
similar scenario. Thanks a lot for your help!


  Ats,
  Osvaldo Pina.

On Thu, Sep 29, 2011 at 8:33 AM, Sergey Beryozkin wrote:

> Hi
>
> ResponseReader is still the provider you need to register.
> I have a test which catches ServerWebApplicationException and
> then does ex.toErrorObject(Book.class).
> ResponseReader has to be registered once but you can set an expected class
> on it every time you need to read from Response, directly or indirectly
>
> Cheers, Sergey
>
>
>
> On 28/09/11 17:31, Osvaldo Pina wrote:
>
>>   Hi,
>>
>>   Maybe the approach to my problem is driving me to a wrong path. We are
>> in
>> the process of changing all integration components from EJB2 to Rest. In
>> the
>> server side when a component exception is thrown I look at the accept
>> header
>> that was sent by the client to see if the client is a regular web browser
>> or
>> my rest client. If it was the web browser I render the response as a HTML
>> error page but if It was my rest client (the rest client accepts
>> application/xml for regular response and
>> application/bc-serialized-**exception+xml for error response) I render
>> the
>> error as a xml with the java exception serialized in a base 64 format. In
>> the server I have a ExceptionMapper that do this exception to HTML or
>> application/bc-serialized-**exception+xml translation. In the client i
>> get the
>> ServerWebApplicationException and use the method toErrorObject to
>> translate
>> the application/bc-serialized-**exception+xml back into the original
>> exception. When I discorered the ResponseExceptionMapper that was designed
>> to do this task on the client side I decided to give it a try, but the
>> Response object in ResponseExceptionMapper is a InputStream. So the
>> question
>> about message context was to give a way to acess the Providers instance in
>> order to query for the responseReader for
>> application/bc-serialized-**exception+xml ( whitch I think will return a
>> MessageBodyReader for xml). Summarizing the problem: In the
>> ResponseExceptionMapper I have to translate the exception which is encoded
>> as application/bc-serialized-**exception+xml into the corresponding java
>> object.
>> Sorry by the long email
>>
>> thanks a lot,
>> Osvaldo Pina.
>>
>> On Tue, Sep 27, 2011 at 7:05 PM, Sergey Beryozkin> >wrote:
>>
>>  Hi
>>>
>>> Do you need some information about the outbound message in your
>>> ResponseExceptionMapper ? It has a Response in parameter that gives all
>>> the
>>> info about the response message
>>>
>>> Cheers, Sergey
>>>
>>>
>>> On 26/09/11 21:51, Osvaldo Pina wrote:
>>>
>>>Hi,

   I´m trying to inject a @Context for a MessageContext into a
 ResponseExceptionMapper and I always get null for the MessageContext
 field.
 Taking a look at the code I found that the code in ProviderFactory class
 is
 not calling injectContexts into responseExceptionMappers. This is
 correct?


   Ats,
   Osvaldo Pina.



>>>
>>
>


Re: @Context not working for ResponseExceptionMapper

2011-09-29 Thread Sergey Beryozkin

Hi

ResponseReader is still the provider you need to register.
I have a test which catches ServerWebApplicationException and
then does ex.toErrorObject(Book.class).
ResponseReader has to be registered once but you can set an expected 
class on it every time you need to read from Response, directly or 
indirectly


Cheers, Sergey


On 28/09/11 17:31, Osvaldo Pina wrote:

   Hi,

   Maybe the approach to my problem is driving me to a wrong path. We are in
the process of changing all integration components from EJB2 to Rest. In the
server side when a component exception is thrown I look at the accept header
that was sent by the client to see if the client is a regular web browser or
my rest client. If it was the web browser I render the response as a HTML
error page but if It was my rest client (the rest client accepts
application/xml for regular response and
application/bc-serialized-exception+xml for error response) I render the
error as a xml with the java exception serialized in a base 64 format. In
the server I have a ExceptionMapper that do this exception to HTML or
application/bc-serialized-exception+xml translation. In the client i get the
ServerWebApplicationException and use the method toErrorObject to translate
the application/bc-serialized-exception+xml back into the original
exception. When I discorered the ResponseExceptionMapper that was designed
to do this task on the client side I decided to give it a try, but the
Response object in ResponseExceptionMapper is a InputStream. So the question
about message context was to give a way to acess the Providers instance in
order to query for the responseReader for
application/bc-serialized-exception+xml ( whitch I think will return a
MessageBodyReader for xml). Summarizing the problem: In the
ResponseExceptionMapper I have to translate the exception which is encoded
as application/bc-serialized-exception+xml into the corresponding java
object.
Sorry by the long email

thanks a lot,
Osvaldo Pina.

On Tue, Sep 27, 2011 at 7:05 PM, Sergey Beryozkinwrote:


Hi

Do you need some information about the outbound message in your
ResponseExceptionMapper ? It has a Response in parameter that gives all the
info about the response message

Cheers, Sergey


On 26/09/11 21:51, Osvaldo Pina wrote:


   Hi,

   I´m trying to inject a @Context for a MessageContext into a
ResponseExceptionMapper and I always get null for the MessageContext
field.
Taking a look at the code I found that the code in ProviderFactory class
is
not calling injectContexts into responseExceptionMappers. This is correct?


   Ats,
   Osvaldo Pina.










Re: @Context not working for ResponseExceptionMapper

2011-09-28 Thread Osvaldo Pina
  Hi,

  Maybe the approach to my problem is driving me to a wrong path. We are in
the process of changing all integration components from EJB2 to Rest. In the
server side when a component exception is thrown I look at the accept header
that was sent by the client to see if the client is a regular web browser or
my rest client. If it was the web browser I render the response as a HTML
error page but if It was my rest client (the rest client accepts
application/xml for regular response and
application/bc-serialized-exception+xml for error response) I render the
error as a xml with the java exception serialized in a base 64 format. In
the server I have a ExceptionMapper that do this exception to HTML or
application/bc-serialized-exception+xml translation. In the client i get the
ServerWebApplicationException and use the method toErrorObject to translate
the application/bc-serialized-exception+xml back into the original
exception. When I discorered the ResponseExceptionMapper that was designed
to do this task on the client side I decided to give it a try, but the
Response object in ResponseExceptionMapper is a InputStream. So the question
about message context was to give a way to acess the Providers instance in
order to query for the responseReader for
application/bc-serialized-exception+xml ( whitch I think will return a
MessageBodyReader for xml). Summarizing the problem: In the
ResponseExceptionMapper I have to translate the exception which is encoded
as application/bc-serialized-exception+xml into the corresponding java
object.
Sorry by the long email

thanks a lot,
Osvaldo Pina.

On Tue, Sep 27, 2011 at 7:05 PM, Sergey Beryozkin wrote:

> Hi
>
> Do you need some information about the outbound message in your
> ResponseExceptionMapper ? It has a Response in parameter that gives all the
> info about the response message
>
> Cheers, Sergey
>
>
> On 26/09/11 21:51, Osvaldo Pina wrote:
>
>>   Hi,
>>
>>   I´m trying to inject a @Context for a MessageContext into a
>> ResponseExceptionMapper and I always get null for the MessageContext
>> field.
>> Taking a look at the code I found that the code in ProviderFactory class
>> is
>> not calling injectContexts into responseExceptionMappers. This is correct?
>>
>>
>>   Ats,
>>   Osvaldo Pina.
>>
>>
>


Re: @Context not working for ResponseExceptionMapper

2011-09-27 Thread Sergey Beryozkin

Hi

Do you need some information about the outbound message in your 
ResponseExceptionMapper ? It has a Response in parameter that gives all 
the info about the response message


Cheers, Sergey

On 26/09/11 21:51, Osvaldo Pina wrote:

   Hi,

   I´m trying to inject a @Context for a MessageContext into a
ResponseExceptionMapper and I always get null for the MessageContext field.
Taking a look at the code I found that the code in ProviderFactory class is
not calling injectContexts into responseExceptionMappers. This is correct?


   Ats,
   Osvaldo Pina.