Как вернуть произвольный XML-документ с помощью сервиса Eclipse / AXIS2 POJO - PullRequest
1 голос
/ 24 октября 2011

Как я могу вернуть произвольный XML-документ, используя службу Eclipse / AXIS2 POJO?

Для получения полной информации см. Этот вопрос: Веб-служба Java возвращает строку с> и <вместо> и<</a>

Чтобы развернуть веб-сервис, у меня есть динамический веб-проект с классом, который определяет интерфейс моего сервиса.Метод, который меня интересует, возвращает тип String.Чтобы создать и развернуть веб-сервис, я щелкаю правой кнопкой мыши по классу (содержащемуся в динамическом веб-проекте) и выбираю создание веб-сервиса, здесь я указываю, что хочу «Веб-сервис Bottom up Java bean» и что реализация сервиса происходит изкласс в моем динамическом веб-проекте.Это запускает мой сервис и создает WSDL с определением моих портов и конечных точек.

Секция типов wsdl автоматически генерируется на основе кода, который станет сервисом.Функция intrest имеет org.w3c.DOM.Document, который содержит XML, который я хочу вернуть.Этот документ преобразуется в строку и возвращается, поскольку объект Document не сериализован и не имеет открытого конструктора.Есть ли другой тип, который я могу использовать в качестве возвращаемого типа для моей функции, которая будет содержать структуру XML через вызов службы?

1 Ответ

2 голосов
/ 24 октября 2011

Я не думаю, что это можно сделать с помощью технологий и процессов, которые вы используете.

В идеале вы могли бы просто вернуть org.w3c.dom.Document (или сопоставимый объект DOM в этой структуре), и он предоставил бы «любой» тип в WSDL, но, к сожалению, он, похоже, не работает так. AXIS2 строго типизирован и нуждается в технологии привязки данных (например, ADB, XmlBeans, JiBX, возможно JAXB) для данных запроса и ответа. Кажется, он поддерживает элементы <xsd:any> и <xsd:anyType> через службы AXIOM , но это стиль реализации, отличный от используемого вами.

См. Это интересное обсуждение «Неизвестный тип не может сериализовать» Исключение . Кроме того, вот связанный вопрос SO, AXiS2 - Проблема в возвращении строкового значения. <и> преобразуются в & lt; и & gt;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...