Pavel,
first, I do not have "application/octet-stream", but no type at all.
Second, what negative impact do you actually assume? I mean, as long as
custom providers have precedence, I cannot see why being able to process
more input would actually be a fault?
Regards
Markus
From: Pavel Bucek [mailto:pavel.bucek_at_oracle.com]
Sent: Freitag, 18. Februar 2011 11:03
To: users_at_jersey.java.net
Subject: [Jersey] Re: Doesn't find reader, but list it?
Hello Markus,
XmlRootElementProvider$General has following "restriction":
@Override
protected boolean isSupported(MediaType m) {
return m.getSubtype().endsWith("+xml");
}
and you have mediatype "application/octet-stream"..
question here is why its restricted.. from message related to commit
which introduced it (btw its from 11/28/08) I can see that Paul was
extending possibilities for custom MessageBodyReaders/Writers, BUT afaik
this has been refactored some time ago (user declared readers/writers
have priority now) so we "might" get rid of it. On the other side.. I
don't think its good idea, we should keep this backwards compatible, I
can imagine that lots of apps could break after that change..
Regards,
Pavel
On 2/18/11 10:51 AM, Markus Karg wrote:
I am a bit confused about an error message in Jersey 1.4.
I am PUTting a XML into a method that is marked as @Consumes(<some
custom mime type>). The content variable is marked as XMLRootElement. As
I forgot to provide the Content-Type header with the PUT, it is clear
that Jersey complains about my fault, but what confuses me is the error
message's explanation. Below you can see the (correct) complaint, but
look down to the list of registered providers for ANY (*/*) content
type. It does contain XMLRootElementProvider. So I understand that even
with no mime provided, Jersey would be able to find that provider, but
it actually does not use it...?
Can someone shed some light on that? I understand what my fault is, I
just don't understand why Jersey lists XMLRootElementProvider for */*
but doesn't actually use it in this case.
SCHWERWIEGEND: A message body reader for Java class
de.quipsy.entities.ControlPlan, and Java type class
de.quipsy.entities.ControlPlan, and MIME media type
application/octet-stream was not found
18.02.2011 10:39:00 com.sun.jersey.spi.container.ContainerRequest
getEntity
SCHWERWIEGEND: The registered message body readers compatible with the
MIME media type are:
application/octet-stream ->
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.RenderedImageProvider
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceRead
er
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General