Я привык работать с jax-ws, где создается файл wsdl, а затем клиент может быть создан на основе этого файла wsdl и его xsd (s) с использованием плагина maven. Использование этого клиента не вызывает затруднений, и вам не нужно думать о том, что происходит в фоновом режиме, например, о маршаллинге, передаче по http и тому подобном.
В настоящее время я работаю над проектом jax-rs, используя jaxb для демаршалирования объектов. Один из методов возвращает список строк, но кажется, что jaxb не знает, как его маршалировать, что немного удивительно, поскольку он знает, как маршалировать список сущностей (например, клиенты ).
Кроме того, я написал клиент для службы jax-rs самостоятельно, обрабатывая как HTTP-ответы, так и десортируя полезную нагрузку с помощью jaxb. Маршаллинг и демаршаллинг с помощью jaxb — настоящая проблема, поскольку он не может автоматически маршалировать или демаршалировать список сущностей, которые добавляются в его контекст, даже меньше списков строк.
Я хотел бы знать, есть ли какой-нибудь изящный способ получить все это бесплатно, используя спокойные веб-сервисы? Это должно быть довольно легким, и клиенты должны быть легко распространяемыми.
Спасибо! Рунар
Метод службы, который не работает с использованием jaxrs и jaxb:
@GET
@Path("/{customerId}")
@Produces(MediaType.APPLICATION_XML)
public List<String> isCustomerLocked(@PathParam("customerId") Long customerId) {
}
Клиентский код, который пытается упорядочить/отменить упорядочение текстовых полезных данных. Классы, добавленные в jaxbcontext, не показаны:
javax.xml.bind.Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.marshal(obj, stringwriter)
javax.xml.bind.Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.unmarshal(inputstream)