Пожалуйста, рассмотрите мой вопрос, основанный на 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 , но меня интересует нечто другое.