- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Jersey 编写 Web 服务时,我将 ServletContainer 添加到 web.xml
<servlet>
<servlet-name>Back-End API</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
这个ServletContainer有什么用呢? tomcat不是ServletContainer吗?
有没有办法在没有 Jersey 或任何其他第三方框架的情况下实现 Rest Web 服务?
最佳答案
What is the use of this ServletContainer?
通常任何类的使用都会在其 javadoc 中进行解释。幸运的是, Jersey 的人们认真对待 javadocs,你的答案确实是 right there .
<小时/>com.sun.jersey.spi.container.servlet
Class ServletContainer
A
Servlet
orFilter
for deploying root resource classes.If this class is declared as a filter and the initialization parameter
PROPERTY_WEB_PAGE_CONTENT_REGEX
is not set orFEATURE_FILTER_FORWARD_ON_404
is not set to true then the filter must be declared at the last position in the filter chain as the filter will not forward any request to a next filter (if any) in the chain.The following sections make reference to initialization parameters. Unless otherwise specified the initialization parameters apply to both server and filter initialization parameters.
The servlet or filter may be configured to have an initialization parameter "com.sun.jersey.config.property.resourceConfigClass" or "javax.ws.rs.Application" and whose value is a fully qualified name of a class that implements
ResourceConfig
orApplication
. If the concrete class has a constructor that takes a single parameter of the type Map then the class is instantiated with that constructor and an instance of Map that contains all the initialization parameters is passed as the parameter. Otherwise, the class is instantiated as a singleton component managed by the runtime, and injection may be performed (the artifacts that may be injected are limited to injectable providers registered when the servlet or filter is configured).If the initialization parameter "com.sun.jersey.config.property.resourceConfigClass" or "javax.ws.rs.Application" is not present and a initialization parameter "com.sun.jersey.config.property.packages" is present (see
PackagesResourceConfig.PROPERTY_PACKAGES
) a new instance ofPackagesResourceConfig
is created. The initialization parameter "com.sun.jersey.config.property.packages" MUST be set to provide one or more package names. Each package name MUST be separated by ';'. The package names are added as a property value to a Map instance using the property name "com.sun.jersey.config.property.packages". Any additional initialization parameters are then added to the Map instance. Then that Map instance is passed to the constructor ofPackagesResourceConfig
.If none of the above resource configuration related initialization parameters are present a new instance of
WebAppResourceConfig
is created. The initialization parameter "com.sun.jersey.config.property.classpath" MAY be set to provide one or more resource paths. Each path MUST be separated by ';'. The resource paths are added as a property value to a Map instance using the property name "com.sun.jersey.config.property.classpath". Any additional initialization parameters are then added to the Map instance. Then that Map instance is passed to the constructor ofWebAppResourceConfig
. If the initialization parameter is not present then the following resource paths are utilized: "/WEB-INF/lib" and "/WEB-INF/classes".All initialization parameters are added as properties of the created
ResourceConfig
.A new
WebApplication
instance will be created and configured such that the following classes may be injected onto a root resource, provider and Application classes using Context:HttpServletRequest
,HttpServletResponse
,ServletContext
,ServletConfig
andWebConfig
. If this class is used as aServlet
then theServletConfig
class may be injected. If this class is used as aFilter
then theFilterConfig
class may be injected.WebConfig
may be injected to abstract servlet or filter deployment.A
IoCComponentProviderFactory
instance may be registered by extending this class and overriding the methodinitiate(ResourceConfig, WebApplication)
to initiate theWebApplication
with theIoCComponentProviderFactory
instance.
isn't tomcat the ServletContainer?
是的,确实如此。只是类的名称 com.sun.jersey.spi.container.servlet.ServletContainer 选得不好。他们最好将其命名为 RestController
或 RestApiDispatcher
左右。
Is there a way to implement Rest web services without Jersey or any other third party framework?
是的。您有多种选择:
关于java - 使用 Jersey 编写 REST Web 服务时使用 ServletContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45595278/
我们有 jersey ServletContainer,我们希望 servlet 在关闭 tomcat 时处理宽限期请求。可能吗? 最佳答案 您可以注册 ContainerLifecycleListe
对于通用项目,可以将 JRE_CONTAINER 添加到类路径,对于 Web 容器服务器运行时是否可以这样做? 最佳答案 是的,我相信是这样。我正在运行 Eclipse Galileo,我可以通过以
我无法再编译我的 jersey 项目,并且出现以下异常: GRAVE: Servlet /Project-API threw load() exception java.lang.ClassNotFo
我想在 REST Jersey 上尝试一些示例。 Jersey servlet 需要添加到 web.xml 我将以下条目添加到 web.xml com.sun.jersey.spi.container
我有这样的过滤器配置: Jersey Web Application com.sun.jersey.spi.container.servlet.ServletContainer
我正在使用动态加载资源的 OSGI 开发 JAX-RS 应用程序。为此,我需要以编程方式注册 ServletContainer,然后我可以调用方法 ServletContainer.reload (R
用 Java 编写 Web 服务 (Jersey/Maven)。我想构建一个类,在部署应用程序之前构建多个数据库 - 因为它的所有资源都依赖于这些数据库。尽管有 Jersey 的ServletCont
我注意到,org.glassfish.jersey.servlet.ServletContainer需要用作Filter(在Spring Boot的application.properties中设置s
我想让 Jersey2 和 Guice 一起合作,这显然是相当困难的。我已经看到了一些解决方案,涉及使用 HK2-to-Guice 桥。但是桥靠得HK2ServiceLocator init() 中的
我使用一个可以正确构建的 Spring Boot 项目。但是,在使用命令运行项目时,例如mvn spring-boot:run 我收到以下错误堆栈,其中包含下面提供的 BeanCreationExce
我面临描述的问题 here .我发现了对 jsp-api.jar 的依赖,它实际上来自对 Joda-Time 的依赖: joda-time joda-time-jsptags
我遇到了这个异常,我一直在谷歌搜索以找出我遗漏了什么。到目前为止,我已经通过了 java.lang.ClassNotFoundException: com.sun.jersey.spi.contain
几个月前我下载了 Eclipse Luna 和 Tomcat 8.0.24,但我开始使用它们。我一直在创建一个没有 Maven 的网络应用程序。我手动下载了 Jersey 2.23、Jersey me
我一直在使用 org.glassfish.jersey.servlet.ServletContainer 得到一个 ClassNotFoundException,但昨晚当我尝试使用 Eclipse J
我在 org.glassfish.jersey.servlet.ServletContainer 中遇到了 ClassNotFoundException,但昨晚我尝试使用 Eclipse Juno 启
我想使用 Spring Boot 在不同端口上加载两个具有嵌入式 tomcat 配置的 servlet 容器。 有谁知道如何做到这一点? 最佳答案 应该很简单:只需根据需要创建任意数量的 Applic
使用 Jersey 编写 Web 服务时,我将 ServletContainer 添加到 web.xml Back-End API com.sun.jersey.spi.conta
当我使用 jersey 将我的 rest api 部署到 tomcat 7.0 服务器时,我收到一个错误,该错误已在 stackoverflow 上经常讨论,但我无法解决它: java.lang.Cl
我正在尝试使用 Tomcat 和 Jersey 运行 REST 接口(interface)但没有成功,我在服务器启动时收到烦人的错误 Oct 13, 2014 2:53:45 PM org.apach
我看到了很多关于它的话题,但没有一个是关于确切的场景,也没有一个是我的解决方案。 我有一个带有一些休息端点的简单网络应用程序。我用 Maven 的 Jersey 原型(prototype)配置了这个应
我是一名优秀的程序员,十分优秀!