Я использую JBoss Fuse 6.3 для разработки веб-сервиса с использованием компонентов Camel и CXF (2.17.0).Я также использую подход «сначала код».Я считаю, что все идет хорошо с простым объектом в качестве параметра (метод doSomething), но не работает со списком объектов в качестве параметра (метод обновления).Вот результаты:
@WebService
public java.util.List<ObjectResponse> update(
java.util.List<ObjectRequest> arg0
);
public ObjectResponse doSomething(
Object parameter
);
Когда arg0 содержит только один элемент (ObjectRequest), он не выдает ошибку, однако запрос веб-службы не имеет содержимого:
Когда arg0 имеет два элемента, он выдает следующую ошибку:
java.lang.IllegalArgumentException: Получить неправильный размер параметра для вызова службы out, Ожидайте размер 1, Размер параметра 2. Пожалуйста, проверьтеесли тело сообщения соответствует запросу CXFEndpoint POJO Dataformat.в org.apache.camel.component.cxf.CxfProducer.checkParameterSize (CxfProducer.java:272) [241: org.apache.camel.camel-cxf: 2.17.0.redhat-630187] в org.apache.camel.component.cxf.CxfProducer.getParams (CxfProducer.java:310) [241: org.apache.camel.camel-cxf: 2.17.0.redhat-630187] в org.apache.camel.component.cxf.CxfProducer.process (CxfProducer.java: 120) [241: org.apache.camel.camel-cxf: 2.17.0.redhat-630187] в org.apache.camel.processor.SendProcessor.process (SendProcessor.java:145) [232: орг.apache.camel.camel-ядро: 2.17.0.redhat-630187]