Так много для этого простого вопроса, но я просто хотел выделить новую функцию на Java, которая позволит избежать всех путаниц в индексировании в массивах даже для новичков. Java-8 абстрагировал задачу итерации для вас.
int[] array = new int[5];
//If you need just the items
Arrays.stream(array).forEach(item -> { println(item); });
//If you need the index as well
IntStream.range(0, array.length).forEach(index -> { println(array[index]); })
В чем польза? Ну, с одной стороны, это читаемость, как английский. Во-вторых, вам не нужно беспокоиться о ArrayIndexOutOfBoundsException
Этот метод работает при вызове от SOAPUI:
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getOrderDetail")
public @ResponsePayload JAXBElement<OrderDetailResponse> getOrderDetail(@RequestPayload JAXBElement<String> customerId, @RequestPayload JAXBElement<String> promoCode)
В методе ниже, значения в customerStatusRequest прибывают в пустой указатель даже при том, что от SOAPUI я заполняю их.
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getCustomerStatus")
public @ResponsePayload
JAXBElement<CustomerStatusResponse> getCustomerStatus(@RequestPayload JAXBElement<CustomerStatusRequest> customerStatusRequest)
(CustomerStatusRequest реализует сериализуемый)
кажется, что значения Строкового параметра делают его через вызов. Но не пользовательский класс. Я аннотировал класс CustomerStatusRequest этим способом:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CustomerStatusRequest", propOrder = {
"customerId",
"gender",
"dob",
"lastName",
"sourceSystemId"
},namespace="http://www.mycompany.com/webservices")
и также каждое поле в CustomerStatusRequest этот путь:
@XmlElement(name = "customerId", required = true, nillable = true)
метод называют, но значения для customerId, и т.д.... все еще входят как пустой указатель. Дополнительные аннотации необходимы для пользовательского класса?
- Спасибо
У меня была подобная ошибка. проблема состоит в том, что запрос и ответ, сгенерированный от XSD/WSDL, пропустили @XMLRootElement аннотацию. Путем добавления JAXBElement к конечной точке решил проблему.
private static final String NAMESPACE_URI = "<targetNamespace>";
@Autowired
Service service;
@PayloadRoot ( namespace = Endpoint.NAMESPACE_URI, localPart = "name" )
@ResponsePayload
public JAXBElement < Response > Create ( @RequestPayload JAXBElement < Request> request ) throws Exception
{
ObjectFactory factory = new ObjectFactory ( );
Response response = new Response ( );
Request req = request.getValue ( );
response = this.service.call( req);
return factory.createResponse ( response );
}