I finally successfully got CXF service being served at a Camel consumer
endpoint, where TestService has the interface annotated method which I
can call from a .NET soap client no problem:
@WebMethod(operationName="EchoValue")
@WebResult(name = "EchoResponse", targetNamespace =
"http://component.referentia.com")
public String echoValue(@WebParam(name="value")String value);
However, when I add a more complex method like this:
@WebMethod(operationName="GetTestData")
@WebResult(name = "TestData", targetNamespace =
"http://liveaction.referentia.com")
public TestData getTestData(@WebParam(name="Name")String name,
@WebParam(name="MachineValue")int machineValue,
@WebParam(name="Timestamp")Date timestamp);
when I start the application, I get the error below. Am I to believe
that Camel-CXF cannot handle multiple parameter webmethods???
java.lang.IllegalArgumentException: Method getTestData has more than one
parameter and no request wrapper. This is not yet supported
at
org.apache.camel.dataformat.soap.name.ServiceInterfaceStrategy.getInInfo(ServiceInterfaceStrategy.java:106)
at
org.apache.camel.dataformat.soap.name.ServiceInterfaceStrategy.analyzeMethod(ServiceInterfaceStrategy.java:118)
at
org.apache.camel.dataformat.soap.name.ServiceInterfaceStrategy.analyzeServiceInterface(ServiceInterfaceStrategy.java:128)
at
org.apache.camel.dataformat.soap.name.ServiceInterfaceStrategy.<init>(ServiceInterfaceStrategy.java:54)
at
com.referentia.cameltest.CamelTestMain$1.configure(CamelTestMain.java:67)
at
org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:322)
at
org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:277)
at
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:263)
at
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:613)
at com.referentia.cameltest.CamelTestMain.main(CamelTestMain.java:52)