Yep. Although I did some stepping through the code and it looks like my
context resolver *is* picked up but the implementation (yasson) has
some...interesting views when it comes to handling of maps (using
toString() for map keys when serializing and $deity knows what when
deserializing) so this is probably "out of scope" for RESTEasy...
On Fri, Mar 15, 2019 at 11:02 AM Marek Kopecky <mkopecky(a)redhat.com> wrote:
Hi Nicklas,
I'm adding back resteasy mailing list to this conversation.
As I mentioned in my previous mail: can you please provide a reproducer?
(zip file with java project/projects with minimal example of this
issue/issues (deployment application and optionally client application)).
Thank you,
Marek
On 3/14/19 9:50 PM, Nicklas Karlsson wrote:
But another thing that's really strange is if I do a
return client.target(...).path("md5").request()
.post(Entity.json(paths)).readEntity(new GenericType<Map<Path, String>>() {
});
(where paths is a Collection<Path>)
I see my PathAdapter being hit on the way out but not when parsing the
result. Furthermore, I get my Map<Path, String> but the keys are somehow
Strings. Don't ask me how that works syntactically with the key being a
Path. The compiler is fine with me using them as paths until I actually try
to call path methods on it, then they go all ClassCastException on me.
On Thu, Mar 14, 2019 at 6:35 PM Nicklas Karlsson <nickarls(a)gmail.com>
wrote:
> Thanks for the reply, I'll see if I can distill it down.
>
> I actually got it working by explicitly registering the provider with the
> client builder (did it wrong the first time). I checked with the debugger
> and the ClientBuilder apparently holds provider factories that *sound* like
> their job would be picking up the ContextResolver but I get by for now. As
> a curiosity, register(Object) only worked for me when I instantiated the
> ContextResolver with new(), apparently it's an CDI injectable resource but
> passing along that instance resulted in some sort of
> ArrayIndexOutBoundsException.
>
> On Thu, Mar 14, 2019 at 5:21 PM Marek Kopecky <mkopecky(a)redhat.com>
> wrote:
>
>> Hi Nicklas,
>>
>> can you please provide a reproducer? (zip file with minimal example of
>> this issue).
>>
>> Thank you,
>>
>> Marek
>> On 3/14/19 11:45 AM, Nicklas Karlsson wrote:
>>
>> Hi,
>>
>> I'm trying out the RESTEasy client on a WildFly 16 and I'm running
>> into a serialization problem. I have a CDI @Provider
>> for ContextResolver<Jsonb> but when using the client with some
non-standard
>> Objects (Adapters registered in the Jsonb-provider), I never see the
>> provider hit and I get exception like
>>
>> Caused by: java.lang.IllegalAccessException: Class
>> org.eclipse.yasson.internal.model.GetFromGetter can not access a member of
>> class sun.nio.fs.WindowsPath with modifiers "public" and
>> Caused by: javax.ws.rs.ProcessingException: RESTEASY008205: JSON Binding
>> serialization error javax.json.bind.JsonbException: Error getting value on:
>> foo.txt and
>> Caused by: javax.json.bind.JsonbException: Error getting value on:
>> yep.fmb12:36:19,331 at
>>
org.eclipse.yasson.internal.model.GetValueCommand.getValue(GetValueCommand.java:36)
>>
>> and the likes which could be expected from a best-guess attempt at
>> serializing a java.nio.file.Path instead of using the Adapter.
>>
>> I've also tried registering the provider directly in the client builder
>> but still no go? What is the correct way of hooking up JSON-B serialization?
>>
>> Thanks in advance,
>> Nik
>>
>> --
>> Nicklas Karlsson, +358 40 5062266
>> Vaakunatie 10 as 7, 20780 Kaarina
>>
>> _______________________________________________
>> resteasy mailing
listresteasy@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/resteasy
>>
>>
>
> --
> Nicklas Karlsson, +358 40 5062266
> Vaakunatie 10 as 7, 20780 Kaarina
>
--
Nicklas Karlsson, +358 40 5062266
Vaakunatie 10 as 7, 20780 Kaarina
--
Nicklas Karlsson, +358 40 5062266
Vaakunatie 10 as 7, 20780 Kaarina