Определите XML как входной параметр JAX-WS

1

Мне нужно реализовать Java SOAP JAX-WS Web-сервис. Клиент Web-сервиса отправляет XML файл в веб-службу. Затем необходимо обработать полученный XML-контент, а затем вернуть обработанный контент в формате XML в WS Client.

Это мой образец XML, который имеет простые три тега.

    <uild>898999999</uild>
    <customer>cName XXX</cusoter>
    <profileId>TEST/TKTG MR</profileId>

Я объявил мой метод веб-службы, как показано ниже. RequestXmlDTO имеет поля в XML. ProcessedResponseDTO имеет XML-поля в качестве вывода. Я добавляю эти два типа сложных.

@WebService
public class WebService {

    @WebMethod
    public ProcessedResponseDTO getCustomerDetails(RequestXmlDTO requestXml){

    } 

Вопрос. Является ли это рекомендуемым и лучшим способом удовлетворить этот сценарий?

  • 0
    Кажется хорошо Вы пытались скомпилировать свой сервис, например, с помощью java2wsdl Apache CXF ( cxf.apache.org/docs/java-to-wsdl.html )? Это должно избавить вас от написания xsd или wsdl вручную.
  • 0
    Я использую CXF2.2.6. Какой класс я должен использовать для генерации WSDL. Это cxf.apache.org/javadoc/latest/org/apache/cxf/tools/java2wsdl/…
Показать ещё 1 комментарий
Теги:
soap
web-services

1 ответ

0

Вам нужно решить стратегию "Cotract First" или "Code First". Если вы решите продолжить

"Первый контракт" Определите свою схему как первый шаг. Тогда генерировать объекты JAXB могут

используя инструмент. Подобно классу, который вы упомянули, объявите подпись веб-службы в java

интерфейс. Используйте подпись метода для генерации WSDL, используя (http://cxf.apache.org/docs/java-to-wsdl.html).

Используйте этот WSDL для создания заглушек сервера. Вы можете использовать ANT-цель как

<target name="wsdl2Java" >          
            <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
                <arg value="-d"/>
                <arg value="modules/deployments/src/java"/>
                <arg value="-p"/>
                <arg value="com.solution.webservices.version1.jaxb"/>
                <arg value="-ant"/>
                <arg value="-impl"/>
                <arg value="-server"/>              
                <arg value="path/wsdl/sample.wsdl"/>
                <classpath>
                    <path refid="cxf.classpath"/>
                </classpath>
            </java>
    </target>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню