首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat是否直接支持JAX(它知道JAX吗)?

Tomcat是否直接支持JAX(它知道JAX吗)?
EN

Stack Overflow用户
提问于 2015-05-11 19:57:11
回答 1查看 6.7K关注 0票数 10

从教科书“JAX的RESTful Java”中我们可以读到:

如果我们的应用服务器是JAX-RS感知的,或者,换句话说,与JAX-RS紧密集成,那么我们的ShoppingApplication类声明为servlet:

代码语言:javascript
复制
<?xml version="1.0"?>
<web-app>
  <servlet>
    <servlet-name>Rest</servlet-name>
    <servlet-class>
      com.restfully.shop.services.ShoppingApplication
    </servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Rest</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app> 

如果我们的应用服务器不支持JAX-RS -,那么您必须指定JAX提供者的servlet来处理JAX-RS调用。应用程序类应该指定为servlet的init-param:

现在我的问题是: Tomcat是一个JAX感知的Servlet容器吗?如何区分servlet容器JAX感知到的和不支持JAX的容器?为什么在第一种情况下可以使用扩展javax.ws.rs.core.Application的自定义类作为Servlet?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-12 01:33:24

“Tomcat是一个JAX感知的Servlet容器吗?”

不是的。

“如何区分servlet容器JAX感知的和不知道JAX的?”

事实上,它只是一个Servlet容器,应该告诉您它不是“JAX感知的”。JAX-RS是Java规范的一部分。Servlet容器完全支持它们的名称;Servlet容器。它们可能支持其他一些小特性,如JSP,但不支持整个EE规范。这不是他们设计的一部分。如果要在Servlet容器中使用JAX-RS,则需要添加一个实现,如泽西岛恢复期

当您说Servlet容器时,您会想到像Jetty、Tomcat、Under拖车、Grizzly这样的服务器。如果您想要完整的Java支持,那么您需要获得一个实际的Java应用服务器,它支持整个规范,比如JBoss、Glassfish、TomEE、WebSphere、WebLogic。

“为什么在第一种情况下可以使用您的自定义类扩展javax.ws.rs.core.Application作为Servlet?”

我无法用Glassfish 4.0或WildFail8.1生成一个工作示例,在JAX-RS规范中也没有指定这一点。在Glassfish中,我将得到一个关于ShoppingApplication不是Servlet的例外,而在Wildfly中,我只会得到一个NotFoundException,这意味着应用程序永远不会加载。

我能找到的最接近这本书描述的东西是将应用程序类的名称指定为<servlet-name> (它是JAX-RS规范的一部分,但根本不依赖于部署到Java服务器上)。

代码语言:javascript
复制
<servlet>
    <servlet-name>com.restfully.shop.services.ShoppingApplication</servlet-name>
</servlet>
<servlet-mapping>
    <servlet-name>com.restfully.shop.services.ShoppingApplication</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

这是JAX-RS规范中的

如果存在一个现有servlet未处理的Application子类,则ContainerInitializer添加的servlet必须使用Application子类的完全限定名命名。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30176555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档