насколько полный контейнер жалоб JEE не нужен sun-jaxws.xml - PullRequest
0 голосов
/ 26 ноября 2018

Пожалуйста, рассмотрите мой вопрос, основанный на JEE 5 и JDK 7, и веб-сервер - tomcat 6;

считают, что у нас есть такой веб-сервис:

package client;

import javax.jws.WebService;

@WebService
public class RetroQuery {
    public List<RetroQueryOutput> retroQuery(RetroQueryInput req) throws Exception {
    }
}

в weblogic иБЫЛО мы можем создать веб-сервис JAX-WS с конфигурацией ниже только в web.xml, что НЕТ!необходимо использовать файл sun-jaxws.xml.

<servlet>
    <servlet-name>RetroQueryPort</servlet-name>
    <servlet-class>client.RetroQuery</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>RetroQueryPort</servlet-name>
    <url-pattern>/RetroQueryPort</url-pattern>
</servlet-mapping>

, но в веб-контейнере нам нужно немного изменить файл web.xml, как показано ниже:

<listener>
      <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
    <servlet-name>RetroQueryService</servlet-name>
    <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
    <servlet-mapping>
    <servlet-name>RetroQueryService</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

ИВ довершение всего нам также нужен файл с именем sun-jaxws.xml, который выглядит следующим образом:

<endpoint name='RetroQuery' implementation='client.RetroQuery' url-pattern='/RetroQueryPort' />

Вопрос 1: что делает компонент / стандарт в JEE 5 (weblogic или WAS) "com.sun.xml.ws.transport.http.servlet.WSServlet "Класс и слушатель бесполезны

Вопросы 2: почему веб-серверы (tomcat 6) не работают без установки класса сервлета с помощью" com.sun.xml.ws.transport.http.servlet.WSServlet "и без помещения этого файла sun-jaxws.xml

PS.Я также знаю, что в JEE 6 есть новый компонент javax.servlet.ServletContainerInitializer , но меня интересует нечто другое.

1 Ответ

0 голосов
/ 27 ноября 2018

Jax-WS является эталонной реализацией Sun для создания / реализации / вызова веб-сервисов.Чтобы использовать Jax-WS в среде, отличной от JEE, вам понадобятся sun-jaxws.xml дескрипторы развертывания.Подробнее здесь

Другое дело, если вы используете CXF вместо Sun Jax-WS RI.

...