【发布时间】:2019-04-28 02:20:33
【问题描述】:
请根据 JEE 5 和 JDK 7 考虑我的问题,Web 服务器是 tomcat 6;
考虑我们有这样的网络服务:
package client;
import javax.jws.WebService;
@WebService
public class RetroQuery {
public List<RetroQueryOutput> retroQuery(RetroQueryInput req) throws Exception {
}
}
在 weblogic 和 WAS 中,我们可以创建一个 JAX-WS Web 服务,只在 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 容器中,我们需要让 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: 为什么 Web 服务器(tomcat 6)不使用“com.sun.xml.ws.transport.http.servlet.WSServlet”设置 servlet 类并且不放置这个 sun-jaxws.xml 文件就无法工作
附言。我也知道在 JEE 6 中有一个新组件 javax.servlet.ServletContainerInitializer 但我想知道的是不同的东西。
【问题讨论】:
标签: tomcat servlets jakarta-ee weblogic java-ee-5