Итак, у меня есть веб-сервис в NetBeans 8.1, для которого я написал wsdl со встроенным XSD (и внешним ref также). Теперь мне нужно позвонить в службу SOAP на другие экземпляры приложения: i.e иметь экземпляр X вызвать метод в экземпляре Y, как вторичную цель приложения. Я не люблю использовать чистых клиентов NetBeans с автоматическим SOAP-клиентом, поскольку я хотел бы указать на тот самый сервис, который я создаю, - это потенциально будет курица и тип яйца во время строительства. Во-вторых, у меня уже есть все необходимые типы JAXB, используемые веб-службой, поэтому было бы легко создать право клиента?Java.xml.validation.Schema от wsdl
Ну, моя проблема начинается, когда я хочу использовать JAXB для маршалирования моего объекта запроса в javax.xml.soap.SOAPBodyElement
(моя текущая стратегия - использовать SAAJ для клиентской части), но как добавить схему к маршаллеру? схема встроена в wsdl, и я не могу понять, как ее ссылать. Я понял, что могу разделить часть схемы на отдельный файл XSD, но у меня отсутствует опция аннотации для @WebService
, где я могу предоставить файл XSD, точно так же, как я могу предоставить файл wsdl (в настоящее время это 'wsdlLocation' указывает на wsdl & xsd, поскольку он встроен).
Возможно, мне придется жить с тем, чтобы не выполнять проверку XSD на стороне клиента (он включен на стороне сервера), так как кажется сложным получить объект Schema из wsdl - возможно ли это как-то?
Я никогда не решал этого, а предпочел использовать выделенный интерфейс для конкретного случая использования, который выгружал подзадачи в другие экземпляры приложения (это был мир перед облаком/докером). Вместо этого я просто отправляю объекты как application/x-java-serialized-object, обрабатываю их и возвращать. Общая задача также доступна с помощью мыла ws, но менее эффективна. –