Hi,

why the cxfrs producer not accept null query params? Should I set an
additional parameter to pass null value?

My route:
        from("cxfrs:http://localhost:8080/tua";
                + "?resourceClasses="
                + "hu.fornax.tua.kodtar.protocol.rest.KodtarREST"
                + "&loggingFeatureEnabled=true"
                + "&providers=#jsonProvider")
                        .removeHeader("Content-Type")
                        .setHeader("CamelCxfRsUsingHttpAPI", constant("false"))
                        .log(ESBLog.ESB + "REST request: ${headers}")
                        .to("cxfrs:http://localhost:8080/tua-kodtar/rest";
                                +
"?resourceClasses=hu.fornax.tua.kodtar.protocol.rest.KodtarREST&throwExceptionOnFailure=false&loggingFeatureEnabled=true&providers=#jsonProvider")
                        .otherwise()

The rest interface:

    @Path("/{type}")
    public List<KodtarDto> getKodtarElemListByType(@PathParam("type")
KodtarType type, @QueryParam("id") Long id);

If I call the consumer (cxfrs://http://localhost:8080/tua) to proxy the request:

13:23:34,882 ERROR [org.apache.camel.processor.DefaultErrorHandler]
(default task-2) Failed delivery for (MessageId:
ID-DESKTOP-A2U86J9-59663-1562671187095-11-1 on ExchangeId:
ID-DESKTOP-A2U86J9-59663-1562671187095-11-2). Exhausted after delivery
attempt: 1 caught: java.lang.NullPointerException

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor
                                                    Elapsed (ms)
[route15           ] [route15           ]
[cxfrs://http://localhost:8080/tua?loggingFeatureEnabled=true&providers=%23json]
[        65]
[route15           ] [removeHeader1     ] [removeHeader[Content-Type]
                                                  ] [         1]
[route15           ] [setHeader3        ]
[setHeader[CamelCxfRsUsingHttpAPI]
        ] [         0]
[route15           ] [log31             ] [log
                                                  ] [         3]
[route15           ] [log32             ] [log
                                                  ] [         1]
[route15           ] [choice3           ]
[when[{header{header(CamelHttpUri)} contains
/tua/api/file}]choice[when[{header] [        54]
[route15           ] [to8               ]
[cxfrs:http://localhost:8080/tua-kodtar/rest?resourceClasses=hu.fornax.tua.kodt]
[        49]

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------:
java.lang.NullPointerException
at 
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.getParameterTypes(CxfRsProducer.java:524)
at 
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.invokeProxyClient(CxfRsProducer.java:430)
at 
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.process(CxfRsProducer.java:103)
at 
org.apache.camel.impl.SynchronousDelegateProducer.process(SynchronousDelegateProducer.java:62)
at 
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:541)
at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:198)
at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:117)
at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:541)
at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:198)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:198)
at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
at 
org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.syncInvoke(CxfRsInvoker.java:139)
at 
org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.performInvocation(CxfRsInvoker.java:72)


If the queryparam is set with value that is not null the route works
and calling the service consumer directly without adding "id" it works
as well (cxfrs:http://localhost:8080/tua-kodtar/rest)....
If I want to proxy the request getting NullPointerException.
env: WildFly-Camel 4.9.0

Thanks for your help!
Topicfun

Reply via email to