Hi Sergey, I've seen that without @QueryParam annotation the parameter is properly managed and serialized, no exception occurs and it arrives properly built to the server. Instead if I define it as @PathParam (leaving all other parameters as @QueryParam) no exception occurs but it arrives as an empty byte[] to the server. So the first solution (remove @QueryParam tag for the byte[]) seems to work...but there is no problem if I leave a parameter without annotations (@QueryParam or @PathParam)? In the morning I'll try also the solution of the Byte[]. Bets regards,
Andrea Date: Mon, 1 Jul 2013 09:14:40 -0700 From: [email protected] To: [email protected] Subject: Re: java.lang.ClassCastException: [B cannot be cast to [Ljava.lang.Object Hi I'm not sure attempting to map a byte[] array to a query parameter will work, but I guess no ClassCastException should be reported but something more meaningful, I'll try to have to look into it. In meantime, try Byte[]. may be that will help Sergey On 01/07/13 16:22, eanbiso wrote: > Hi all, > I've a class cast exception invoking a REST web method that wants a byte[] > as input parameter. > I had a SOAP endPoint and I've added all the annotations required to publish > it also with REST technology... > The web method is this: > > @POST > @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) > @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) > @Path("/AddCluster") > @ApiOperation(value = "Create a new cluster", notes = "Returns the newly > created cluster", response = IProxyCluster.class, produces > ="application/xml,application/json") > public IProxyCluster AddCluster( > @ApiParam(value = "username", required = true) > @WebParam(name = > "username") @QueryParam("username") @CxfWSAuthGrain(type=authType.username) > String username , > @ApiParam(value = "appGardenID", required = true) > @WebParam(name = > "appGardenID") @QueryParam("appGardenID") int appGardenID , > @ApiParam(value = "clusterLevel", required = true) > @WebParam(name = > "clusterLevel") @QueryParam("clusterLevel") short clusterLevel , > @ApiParam(value = "clusterType", required = true) > @WebParam(name = > "clusterType") @QueryParam("clusterType") short clusterType , > @ApiParam(value = "hopsize", required = true) > @WebParam(name = "hopsize") > @QueryParam("hopsize") int hopsize , > @ApiParam(value = "clusterAddress", required = true) > @WebParam(name = > "clusterAddress") @QueryParam("clusterAddress") byte[] clusterAddress , > @ApiParam(value = "name", required = true) > @WebParam(name = "name") > @QueryParam("name") String name , > @ApiParam(value = "description", required = true) > @WebParam(name = > "description") @QueryParam("description") String description ) throws > DBValidationException; > > > When I call the REST web method on client side this exception occurs: > > [01 lug 2013 17:03:14,728] - (TestWS-383) ERROR Exception: > java.lang.ClassCastException: [B cannot be cast to [Ljava.lang.Object; > java.lang.ClassCastException: [B cannot be cast to [Ljava.lang.Object; > at > org.apache.cxf.jaxrs.client.AbstractClient.addMatrixQueryParamsToBuilder(AbstractClient.java:632) > at > org.apache.cxf.jaxrs.client.ClientProxyImpl.handleQueries(ClientProxyImpl.java:432) > at > org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:162) > at $Proxy33.AddCluster(Unknown Source) > > ...debugging I've found that the parameter that is the cause of the trouble > is the "byte[] clusterAddress" > > How can I fix the problem? > I forgot a few annotations? > I'm using cxf_2.7.3 > Thanks a lot, > > Andrea > > > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/java-lang-ClassCastException-B-cannot-be-cast-to-Ljava-lang-Object-tp5730141.html > Sent from the cxf-user mailing list archive at Nabble.com. > -- Sergey Beryozkin Talend Community Coders http://coders.talend.com/ Blog: http://sberyozkin.blogspot.com If you reply to this email, your message will be added to the discussion below: http://cxf.547215.n5.nabble.com/java-lang-ClassCastException-B-cannot-be-cast-to-Ljava-lang-Object-tp5730141p5730146.html To unsubscribe from java.lang.ClassCastException: [B cannot be cast to [Ljava.lang.Object, click here. NAML -- View this message in context: http://cxf.547215.n5.nabble.com/java-lang-ClassCastException-B-cannot-be-cast-to-Ljava-lang-Object-tp5730141p5730154.html Sent from the cxf-user mailing list archive at Nabble.com.
