[jboss-jira] [JBoss JIRA] (WFLY-9041) "Arguments must not be null" when sending a null JSON object with ResteasyWebTarget

Chao Wang (JIRA) issues at jboss.org
Mon Jul 3 03:08:00 EDT 2017


     [ https://issues.jboss.org/browse/WFLY-9041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chao Wang moved JBEAP-11920 to WFLY-9041:
-----------------------------------------

              Project: WildFly  (was: JBoss Enterprise Application Platform)
                  Key: WFLY-9041  (was: JBEAP-11920)
             Workflow: GIT Pull Request workflow   (was: CDW with loose statuses v1)
          Component/s: REST
                           (was: REST)
    Affects Version/s: 11.0.0.Alpha1
                           (was: 7.0.6.GA)
                           (was: 7.1.0.ER1)


> "Arguments must not be null" when sending a null JSON object with ResteasyWebTarget
> -----------------------------------------------------------------------------------
>
>                 Key: WFLY-9041
>                 URL: https://issues.jboss.org/browse/WFLY-9041
>             Project: WildFly
>          Issue Type: Bug
>          Components: REST
>    Affects Versions: 11.0.0.Alpha1
>            Reporter: Chao Wang
>            Assignee: Alessio Soldano
>
> Having a very simple WS application with a REST endpoint that consumes a JSON object:
> {code:java}
> @Path("hello")
> public class HelloWorld {
>     @POST
>     @Path("entity")
>     @Produces({MediaType.APPLICATION_JSON})
>     @Consumes({MediaType.APPLICATION_JSON})
>     public Greeting helloEntity(Greeter greeter) {
>         return new Greeting(greeter);
>     }
> }
> {code}
> If the resteasy-client with the the _ResteasyWebTarget_ proxy is used:
> {code:java}
>         System.out.println(
>                 ((ResteasyWebTarget)
>                 ClientBuilder.newClient()
>                 .target("http://jboss.sample.com:8080")
>                 .path("resteasy-test")
>                 .path("ws")
>                 .path("hello"))
>                 .proxy(HelloWorldInterface.class)
>                 .helloEntity(null));
> {code}
> The following exception is thrown at client side (no data is sent):
> {code}
> java.lang.IllegalArgumentException: Arguments must not be null.
>     at javax.ws.rs.core.GenericEntity.<init>(GenericEntity.java:148)
>     at org.jboss.resteasy.client.jaxrs.internal.proxy.processors.invocation.MessageBodyParameterProcessor.process(MessageBodyParameterProcessor.java:35)
>     at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.createRequest(ClientInvoker.java:135)
>     at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:101)
>     at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:64)
>     at com.sun.proxy.$Proxy39.helloEntity(Unknown Source)
>     at com.redhat.sample.test.Client.main(Client.java:63)
> {code}
> You can send a null using the standard jax-rs methods:
> {code:java}
>         System.out.println(ClientBuilder.newClient()
>                 .target("http://jboss.sample.com:8080")
>                 .path("resteasy-test")
>                 .path("ws")
>                 .path("hello")
>                 .path("entity")
>                 .request(MediaType.APPLICATION_JSON)
>                 .accept(MediaType.APPLICATION_JSON)
>                 .post(Entity.entity(null, MediaType.APPLICATION_JSON))
>                 .readEntity(Greeting.class));
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list