RS信号制java程序,JAX-RS应用程序发布方式

JAX-RS应用程序由一个或多个资源(Resource)和零个或多个提供程序(Provider)组成。 组成JAX-RS应用程序的资源和提供程序是通过应用程序提供的Application子类进行配置的。 一个JAX-RS的实现可以提供替代的机制来定位资源类和提供者(例如运行时类扫描),但是使用Application是唯一可移植的配置方式。

根据应用程序是在Java SE环境中运行还是在容器中运行,应用程序以不同的方式发布。这里讨论将JAX-RS打包成Java Web的形式进行部署。建议实现支持Servlet3框架可插入性机制,以实现容器之间的可移植性,并利用容器提供的类扫描功能。

JAX-RS应用程序作为Web应用程序打包在.war文件中。 应用程序类打包在WEB-INF/classs或WEB-INF/lib中,而所需的库打包在WEB-INF/lib中。 有关Web应用程序打包的完整详细信息,请参见Servlet规范。

1,使用Servlet的可插拔机制

使用可插拔机制时,必须满足以下条件

1.1 如果不存在Application的子类

如果不存在Application子类,则需要JAX-RS实现来动态添加servlet并将其名称设置为

javax.ws.rs.core.Application,并自动发现必须与应用程序打包在一起的所有根资源类和提供程序。

另外,应用程序必须与web.xml打包在一起,该web.xml为添加的servlet指定servlet映射。 这样的web.xml文件的示例:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/javaee"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

id="WebApp_ID" version="3.0">

javax.ws.rs.core.Application

javax.ws.rs.core.Application

/myresources/*

1.2 如果存在Application的子类

如果已经有一个处理该应用程序的servlet。 即一个具有参数名为javax.ws.rs.Application值为Application子类完全限定名的Servlet,那么JAX-RS实现不需要任何其他配置步骤。

如果没有servlet处理此应用程序,则需要JAX-RS实现来动态添加其完全限定名称必须是Application子类名称的servlet。如果Application子类使用@ApplicationPath注释,则要求实现使用此注释的值附加“ / *”来定义所添加服务器的映射。 否则,必须将应用程序与指定servlet映射的web.xml打包在一起。 例如,如果org.example.MyApplication是应用程序的名称子类,示例web.xml将是:

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

org.example.MyApplication

org.example.MyApplication

/myresources/*

当归档中存在Application子类时,如果Application.getClasses和Application.getSingletons方法都返回一个空集合,那么所有被打包在web应用程序中的根资源类(root resource)和提供程序(provider)必须被JAX-RS的实现通过如上所述描述扫描war文件来自动发现它们。如果getClasses或getSingletons中的任何一个返回非空集合,则仅返回的那些类或单例必须包含在已发布的JAX-RS应用程序中。

下表总结了Servlet 3框架可插拔性机制:

条件(Condition)

活动(Action)

Servlet名称(Servlet Name)

web.xml

没有Application子类

需要添加Servlet

javax.ws.rs.core.Application

需要配置servlet的mapping

Application的子类被存在的Servlet处理

(已经定义)

不需要

Application的子类未被存在的Servlet处理

需要添加Servlet

Application的子类

如果子类没有添加@ApplicationPath注解则需要配置servlet的mapping

如果未使用Servlet 3框架的可插入性机制(例如在Servlet 3.0之前的容器中),则web.xml描述符的servlet-class或filter-class元素应分别命名为JAX-RS实现提供的servlet或filter类。应使用参数名称为javax.ws.rs.Application的init-param标识Application子类。

请注意,上述Servlet 3框架可插入性机制基于Servlet,而不是过滤器。 倾向于使用JAX-RS实现提供的过滤器类的应用程序必须使用Servlet 3.0之前的配置机制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值