Looking at the CXF code it seems the problem is here:
private <T> MessageBodyWriter<T> chooseMessageWriter(
List<MessageBodyWriter> writers, Class<T> type, MediaType mediaType)
{
for (MessageBodyWriter<T> ep : writers) {
if (!ep.isWriteable(type)) {
continue;
}
where [EMAIL PROTECTED],
[EMAIL PROTECTED],
[EMAIL PROTECTED],
[EMAIL PROTECTED],
[EMAIL PROTECTED],
[EMAIL PROTECTED],
[EMAIL PROTECTED]
these are the writers and my class seems not be "registered with this
writers. Maybe there is a way to make it possible for a writer to have my
class in output... but I'm just guessing... :-)
I will try your solution..
Thnaks,
V.
On Fri, Apr 4, 2008 at 4:51 PM, Sergey Beryozkin <[EMAIL PROTECTED]>
wrote:
> Hi
>
> I think you need to return a Response and then in your code do :
>
> return Response.setEntity(yourObject).build()
>
> I think that just by the virtue of extending a Response you can not have
> it serialized.
>
>
> > - Before the JAXRS implementation I always used to put the annotations
> at
> > the interface level but now in this way it doesn't seem to work anymore.
> I'm
> > missing something to make it possible? Maybe is this a JAXRS
> specification?
>
> I've seen on a Jersey list recently that it's a feature of the 0.7 API
> (spec), we're at a 0.6 level currently...
> and that annotations will only be supported at a method level, don't know
> more about it at this stage
>
> Hope it helps, Sergey
>
>
>
> > Hi,
> >
> > I'm trying to integrate the JAX-RS implementation now included in CXF
> 2.1
> > (snapshot).
> >
> > The service is correctly called and the parameters arrive fine but then
> I
> > get a page with the message:
> >
> > No message body writer found for response class : SimpleResponse.
> >
> > Where SimpleResponse is my custom response bean extending the
> > javax.ws.rs.core.Response.
> >
> > Here the code:
> >
> > @Path("/ButtonService")
> > public class ButtonWebServiceImpl implements ButtonWebService {
> >
> >
> >
> @Path("/addressButton/{action}/{apiKey}/{countryCode}/{state}/{city}/"
> > +
> >
> "{street}/{number}/{postCode}/{attribution}/{logoUrl}/{name}/{description}/{source}/{buttonServer}/{buttonArtUrl}")
> > @GET
> > public SimpleResponse createForAddress(@PathParam(value = "action")
> > String action, @PathParam(value = "apiKey")
> > String apiKey, @PathParam(value = "countryCode")
> > String countryCode, @PathParam(value = "state")
> > String state, @PathParam(value = "city")
> > String city, @PathParam(value = "street")
> > String street, @PathParam(value = "number")
> > String number, @PathParam(value = "postCode")
> > String postCode, @PathParam(value = "attribution")
> > String attribution, @PathParam(value = "logoUrl")
> > String logoUrl, @PathParam(value = "name")
> > String name, @PathParam(value = "description")
> > String description, @PathParam(value = "source")
> > String source, @PathParam(value = "buttonServer")
> > String buttonServer, @PathParam(value = "buttonArtUrl")
> > String buttonArtUrl) {
> > ...
> > }
> > }
> >
> > and in Spring:
> >
> > <jaxrs:server id="buttonWebServiceRest"
> > address="/rest/">
> > <jaxrs:serviceBeans>
> > <ref bean="buttonWebServiceImpl" />
> > </jaxrs:serviceBeans>
> > </jaxrs:server>
> >
> >
> > Have any glue on that?
> >
> >
> > Further questions:
> >
> > - My SimpleResponse extend the javax Response as I red in the JAXRS new
> > documentation that this is a requirement for the HTTPMerthod annotation.
> Is
> > this valid also for the @GET annotation? How I have to implement it?
> >
> > - Before the JAXRS implementation I always used to put the annotations
> at
> > the interface level but now in this way it doesn't seem to work anymore.
> I'm
> > missing something to make it possible? Maybe is this a JAXRS
> specification?
> >
> >
> >
> >
> > Thanks in advance,
> > Vicio.
> >
>
> ----------------------------
> IONA Technologies PLC (registered in Ireland)
> Registered Number: 171387
> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>