Я обновляю EJB Webservice, работающий в среде Weblogic 8.1, до Weblogic 10.3. Согласно документации weblogic, я преобразовал класс EJB-компонента в обычный класс Java и добавил аннотацию к классу Java, чтобы идентифицировать его как веб-сервис. Собрав уши и развернув на сервере, я увидел, что мой веб-сервис запущен и работает. Однако, когда я запускаю запрос, который дал мне действительный ответ в 8.1, к новому веб-сервису 10.3, я получаю ошибку «Не удалось получить имя операции». Мой запрос на ввод такой:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://mycomputer.com:7101/WebServices/HelloService">
<soapenv:Header/>
<soapenv:Body>
<MyRequest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<string xsi:type="xsd:string">Hello</string>
</MyRequest>
</soapenv:Body>
</soapenv:Envelope>
Как видите, элемент MyRequest не является частью какого-либо объявления пространства имен. Веб-сервис 8.1 идентифицирует его как принадлежащий пространству имен - http://mycomputer.com:7101/WebServices/HelloService. Однако веб-сервис 10.3 не идентифицирует его. Когда я префикс "tns:" для элемента MyRequest, я получаю действительный ответ от 10.3 веб-службы. Итак, мой вопрос
- Нужно ли вносить какие-либо изменения в конфигурацию веб-службы 10.3 для обработки запроса 8.1 как есть.
- Обеспечивает ли Weblogic 10.3, чтобы каждый элемент запроса принадлежал пространству имен.
Спасибо за внимание!