我从JavaEE 6web.xml
中读到了这一点。
所以如果没有web.xml,我如何告诉应用程序服务器使用Jersey作为JAX-RS规范的实现呢?
@Alexnevidomsky在他的答案中写的是正确的,就如何在没有web.xml的情况下实现app配置而言;您可以在application
子类上使用@applicationpath
注释。
@ApplicationPath("/api")
public class AppConfig extends Application {}
有关部署选项的更多信息,请参阅泽西文档:第4章。应用程序部署和运行时环境
或者更常见的是,使用Jersey作为实现,我们将扩展resourceConfig
(它扩展了application
)。
@ApplicationPath("api")
public class AppConfig extends ResourceConfig {
public AppConfig() {
packages("package.to.scan");
}
}
Servlet3.0引入了可插拔性机制,它使用ServletContainerInitializer
。它的工作原理是,当服务器/servlet容器启动时,它扫描jars以查找meta-inf/services
文件夹,该文件夹中有一个名为javax.servlet.ServletContainerInitializer
的文件。此文件应包括ServletContainerInitializer
实现的一个或多个完全限定的名称。
此接口只有一个方法
void onStartup(java.util.Set<java.lang.Class<?>> c, ServletContext ctx)
集
将是一个类列表,符合ServletContainerInitializer
实现上的@handlestypes
注释中的条件。如果您查看Jersey实现
@HandlesTypes({ Path.class, Provider.class, Application.class, ApplicationPath.class })
public final class JerseyServletContainerInitializer
implements ServletContainerInitializer {
您应该注意到一些熟悉的注释类,以及application.class
。扫描时,匹配条件的所有这些类都被html" target="_blank">添加到传递给onstartup
方法的set
中。
如果您扫描源代码的其余部分,您将看到所有这些类都完成了注册。
Resteasy的使用
@HandlesTypes({Application.class, Path.class, Provider.class})
public class ResteasyServletInitializer implements ServletContainerInitializer
问题内容: 我从 JavaEE 6中 了解到,它是可选的。 因此,如果没有 web.xml ,如何告诉应用程序服务器使用Jersey作为JAX-RS规范的实现? 问题答案: 就如何在没有web.xml的情况下实现应用程序配置而言,@AlexNevidomsky的回答是正确的。您在子类上使用注释。 有关部署选项的更多信息,请参见JAX-RS规范-> 2.3发布-> 2.3.2Servlet。 或更常
问题内容: 我正在开发一个Java脚本客户端应用程序,在服务器端我需要处理CORS,以及我用JERSEY用JAX-RS编写的所有服务。我的代码: 到目前为止,我收到错误消息请求的资源上没有标头。因此,不允许访问源’ http:// localhost:8080 ‘。” 请协助我。 问题答案: 注意:请务必阅读底部的UPDATE 是CXF批注,因此不适用于Jersey。 对于Jersey,要处理CO
这是MyResource: 和我的web.xml: 在客户端,我使用这个url:http://localhost:8080/[projectname]/webapi/helloworld 谢了!
我正在开发一个java脚本客户端应用程序,在服务器端我需要处理CORS,所有我用JAX-RS和Jersey编写的服务。我的代码: 感谢佛普尼
问题内容: 我正在努力弄清Java中的一些概念: JSR:描述规格,但不包含实际的实现。例如,http://jsr311.java.net/是“ RESTful Web服务的Java™API”的“主页”。它用作JSR-311的所有实现的通用参考。 可以从http://mvnrepository.com/artifact/javax.ws.rs/jsr311-api下载JSR-311的接口(?),但
我们可以通过 实现创建JAX-RS示例。 为此,需要加载 jersey相关jar文件或使用Maven框架。 在这个例子中,我们使用jersey jar文件来实现JAX-RS jersey示例。 Jersey Jar文件下载网址:https://jersey.github.io/download.html 打开Eclipse,创建一个Web工程: restfuljersey,如下图所示 - JAX-