cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kiren Pillay <kirenpill...@gmail.com>
Subject Marshalling REST Query Parameter directly into Integer Array
Date Wed, 28 Sep 2011 14:42:48 GMT
Hi

This is an old problem, but I can't seem to find a solution posted
anywhere. I want to marshall a comma-separated list of integers
directly into an Integer [].

 1. Service:

  public Response getCounters(
            @QueryParam("msisdn") Long msisdn,
            @QueryParam("counters") Integer [] counters,
            @QueryParam("subscriberIdType") String subscriberIdType)

2. I've written a ParameterHandler for this :

public class IntegerArrayParameterHandler implements
		ParameterHandler<Integer[]> {
	@Override
	public Integer[] fromString(String arg0) {

3. The parameter handler is registered, however its not picked up when
I do the query:

 <detail>[I cannot be cast to [Ljava.lang.Object;
org.apache.cxf.jaxrs.utils.InjectionUtils.addToCollectionValues(InjectionUtils.java:752)
org.apache.cxf.jaxrs.utils.InjectionUtils.injectIntoCollectionOrArray(InjectionUtils.java:740)
org.apache.cxf.jaxrs.utils.InjectionUtils.createParameterObject(InjectionUtils.java:807)
org.apache.cxf.jaxrs.utils.JAXRSUtils.readQueryString(JAXRSUtils.java:947)
org.apache.cxf.jaxrs.utils.JAXRSUtils.createHttpParameterValue(JAXRSUtils.java:649)

Is there a way to get this to work?

4. I've Registered the Provider:
                      ----
 			<ref bean="integerArrayParameterHandler" />
		</jaxrs:providers>

The easiest solution is to just use the String value and parse it
inside my code,( which is probably why there are not many posts on
this:).

Regards
Kiren

Mime
View raw message