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@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@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@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 list
resteasy@lists.jboss.org
https://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