Как редактировать (форматировать) SOAP-ответ JAX-RPC? - PullRequest
0 голосов
/ 23 января 2019

Моя цель - контролировать / форматировать ответ веб-службы JAX-RPC.То, что я сделал до сих пор, дает мне «новый ответ».

Но он должен соответствовать «старому ответу».Любые решения, связанные с Java или Weblogic 12c (12.2.1.3.0), приветствуются.(подробнее после)

В обоих случаях вызываемый WebMethod возвращает объект пользовательского типа «Person», в «старом ответе» есть ссылка на него, но в моем «новом ответе» его нет,«новый ответ»:

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <env:Header/>
    <env:Body>
        <m:GetUserInfoServiceResponse xmlns:m="http://example.org">
            <result>
                <java:network xmlns:java="java:my.package">intranet</java:network>
                <java:area xmlns:java="java:my.package">ABC</java:area>
                <java:defaultcat xmlns:java="java:my.package" href="#i4"/>
                <java:code xmlns:java="java:my.package">6606</java:code>
            </result>
        </m:GetUserInfoServiceResponse>
        <xs:string id="i4"/>
    </env:Body>
</env:Envelope>

«старый ответ»:

<env:Envelope  xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <env:Body   env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <m:GetUserInfoServiceResponse    xmlns:m="http://example.org">
   <result     xmlns:n1="java:my.package"
     xsi:type="n1:Person">
    <network      xsi:type="xsd:string">intranet</network>
    <area      xsi:type="xsd:string">ABC</area>
    <defaultcat      href="#ID_4">
    </defaultcat>
    <code      xsi:type="xsd:string">6606</code>
  </result>
</m:GetUserInfoServiceResponse>
  <xsd:string    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xsi:type="xsd:string"
    id="ID_4">
  </xsd:string>
</env:Body>
</env:Envelope>

Подробности:

Я поддерживаю несколько веб-сервисов, что теперь подразумевает обновление задействованных технологий.,Как обновление java 1.4 до 1.8, WebLogic 8.1 до 12c ... И в этом случае я также перекодирую несколько веб-сервисов java RPC, которые были реализованы с использованием EJB и задачи ant "wsgen" и "rpcservices" ...

На протяжении многих лет стало трудно отслеживать, сколько клиентов там и где они находятся ... Так что изменение клиентской части не рассматривается.Отсюда моя проблема.

Что я сделал (используя Eclipse, плагин инструментов webLogic, ANT):

  1. Новый проект -> WebLogic -> Проект веб-служб
  2. Получить WSDL
  3. Создать исходные файлы с помощью задачи ANT "wsdlc"
  4. Пересмотреть файлы и проект wsImpl.java (реализовать мой код, добавить все необходимые библиотеки Lib и структуризатор классов ...)
  5. Скомпилируйте веб-службы в файл war с помощью ANT "jwsc" -> "jws"
  6. Создание файла .ear (необязательный шаг, я думаю, ^^)
  7. Развертывание
...