同一 WAR 中的多个 JAX-RS 应用程序

2024-01-03

I have

@ApplicationPath("/resourcesP")
public class RestfulPrediction extends Application {
    @Override
    public Set<Class<?>> getClasses() {
    Set<Class<?>> set = new HashSet<Class<?>>();
        set.add(PredictionsRS.class);
        return set;
    }
}

And

@ApplicationPath("/resourcesA")
public class RestfulAdage extends Application {
    @Override
    public Set<Class<?>> getClasses() {
    Set<Class<?>> set = new HashSet<Class<?>>();
        set.add(Adages.class);
        return set;
    }
}

两个不同的ApplicationPath和类如下。

@Path("/")
public class service.Adages {}

@Path("/")
public class webservices.PredictionsRS {}

它们都在不同的 ApplicationPath 中声明。我正在使用 Jersey,web.xml 中的配置如下所示

  <servlet>  
    <servlet-name>jersey</servlet-name>  
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>  
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>
            service
            webservices
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>  

我越来越

严重:URI 模板冲突。 root 的 URI 模板 / 资源类 service.Adages 和 URI 模板/转换为 相同的正则表达式(/.*)?

为什么如果我有两个不同的 ApplicationPath,那么在启动时会出现此异常?

如果我在 param-value 中取出一个包,这可以工作,如果我更改其中一个 @Path 注释,这也可以工作,所以这是我的配置有问题吗?

我正在使用泽西岛 1.10。谢谢大家。


您没有在您的文件中定义您的 JAX-RS 应用程序web.xml。请尝试以下操作:

<servlet>
    <servlet-name>full.name.RestfulAdage</servlet-name>
</servlet>

<servlet>
    <servlet-name>full.name.RestfulPrediction</servlet-name>
</servlet>

<servlet-mapping>
    <servlet-name>full.name.RestfulPrediction</servlet-name>
    <url-pattern>/resourcesP/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>full.name.RestfulPrediction</servlet-name>
    <url-pattern>/resourcesA/*</url-pattern>
</servlet-mapping>

并删除@ApplicationPAth来自代码的注释。

我用 Jersey 2.7、servlet 容器 3.0 检查了上面的代码,它可以工作。如果仍然存在该错误,请尝试升级到 Jersey 1.17(这不会改变 Jersey 1.10 的任何行为,而是修复错误)并最终使用 servlet 容器 3.0。

UPDATE

检查可能性后,以下配置适用于 Jersey 1.17

   <servlet>  
    <servlet-name>jersey</servlet-name>  
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>  
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>
            com.koitoer.webservices
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

旧版本 Jersey 的规范中似乎存在错误,该错误会回绕引用并将其标记为重复端点。使用上面的配置可以毫无问题地加载两个端点。

2014/8/04 09:13:40 下午 com.sun.jersey.server.impl.container.servlet.JerseyServletContainerInitializer addServletWithApplication INFO:注册 Jersey servlet 应用程序,名为 com.koitoer.webservices.chapter2.service2.RestfulPrediction,位于 Servlet 映射,/资源P/*,与Application类相同 姓名

8/04/2014 09:13:40 PM com.sun.jersey.server.impl.container.servlet.JerseyServletContainerInitializer addServletWithApplication INFO:注册 Jersey servlet 应用程序,名为 com.koitoer.webservices.chapter2.RestfulAdage,位于 Servlet 映射,/资源/*,与应用程序类 一样的名字

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同一 WAR 中的多个 JAX-RS 应用程序 的相关文章

  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • Jenkins蓝海更改github访问令牌

    Jenkins蓝海非常酷的持续集成工具 但我遇到了以下问题 在主页上 按照要求 我插入了我的GitHub access token 之后我意识到那是不正确来自另一家公司的令牌 现在我想更改为另一个令牌 但没有选项可以做到这一点 我总是看到以
  • 如何使用MonoTouch为iPhone应用程序使用多语言?

    如何在 iPhone 应用程序中使用多语言 目前我只使用英语 但将来我想使用大约 20 到 30 种语言 如何在iPhone开发中使用MonoTouch使用它 您必须以 language lproj 格式为您使用的每种语言创建一个文件夹 例
  • 用 Python 编写的反向 shell 脚本在 Rust 中的等价物是什么?

    Python 中的反向 shell 脚本通常如下所示 import socket subprocess os s socket socket socket AF INET socket SOCK STREAM s connect 192 1
  • 在同一个包中导入类

    我浏览了一些主题 但没有找到合适的答案 我正在尝试将课程导入其他课程 但我得到了 无法解析导入 classname 错误 这两个类都在同一个包中 什么可能导致问题 我还尝试清理我的项目 如果这两个类位于同一个包中 则不必导入它
  • 如何在 R 中查找 Unicode 字符串中的“真实”字符数

    我知道如何在 R 中找到非 Unicode 字符串的长度 nchar ABC 感谢所有在这里回答问题的人 如何在R中找到字符串的长度 https stackoverflow com questions 11134812 how to fin
  • Objective C - 使用委托传回字符串值

    我想使用委托将 UITextField nameText 从 GreenViewController 传递到 ViewController 中的 UILabel nameValue 我做了委托 调用了ViewController中的onSa
  • Python:时间拉伸波形文件 - 三种方法之间的比较

    我正在对语音数据集进行一些数据增强 并且我想在时域中拉伸 压缩每个音频文件 我找到了以下三种方法来做到这一点 但我不确定哪一种是最好的或更优化的方法 dimension int len signal speed res librosa ef
  • Python numpy 按字符串列的值拆分 csv 文件

    我有 5000 行数据 在 csv 文件中如下所示 我想使用 numpy 数组按最后一列 6 即 A B 进行分组 因为之后我将在每组中绘制数据 Title Date Time Value1 Value2 Value3 Value4 Val
  • 如何在Fragment中添加滚动

    我已经实施了Twitter SDK在列表片段中 就像 Twitter 一样 它具有无限滚动功能 但是当我尝试添加这个片段时scrollview layout它禁用scrollview of twitter fragment public c
  • VB.NET:如何防止用户在组合框中输入

    如何防止用户在组合框中输入内容 以便用户只能选择定义列表中的一项 Set the DropDownStyle组合框的属性为DropDownList 这将只允许选择列表中的项目 并且不允许任何自由格式的用户输入
  • Ipython Notebook:Mac 中的 jupyter_notebook_config.py 在哪里?

    我刚刚开始使用 Mac 所以如果这听起来太天真 请原谅我 我正在尝试安装Interactive Parallel From https github com ipython ipyparallel https github com ipyt
  • VueJS 中只有在调度和提交完成后才触发路由

    我确实有一个表单提交 它需要电子邮件和密码 然后将它们传递到商店中名为的操作中userSignIn 登录 vue onSubmit if this refs form validate const user email this email
  • oink 日志命令在 Heroku 上不起作用

    我最近开始使用oink gem https github com noahd1 oink在我的 Heroku 应用程序上 因为我注意到一些控制器操作出现了小内存泄漏 oink log 命令在本地工作正常 但我无法弄清楚让它在我的生产站点上工
  • 如何将图像添加到 DataGridView 中的单个特定单元格?

    使用 C 和 Visual Studio 我有一个DataGridView有 2 列 对于每一行 第一列将显示文本 对于除特定行之外的每一行 第二列将显示文本 在第二列的一个特定单元格中 我需要显示一张图像 例如 Row 0 Cell 0
  • GoogleSheets google.script.run 总是去 FailureHandler

    我正在使用 GoogleSheets HTMLService 我正在从我的 Html 页面的脚本中调用 google script run 但它总是会去 FailureHandler 这其中有什么问题吗 请参阅下面的代码 当我运行它时 它总
  • 调整 Java 7 中默认文件系统的行为

    Java 7 引入了一个用于编写自定义文件系统的出色 API 考虑一个用例 我不想实现新的文件系统 我只想调整现有文件系统的行为 例如 翻转从中写入 读取的每一位 在我看来 当前的jdk并没有为此提供适当的设施 AbstractFileSy
  • 想要了解 Haskell 中的递归吗?

    我现在已经使用了许多递归函数 但仍然无法理解这样的函数到底是如何工作的 我熟悉第二行 即 n 0 1 但我不太熟悉最后一行 即 n gt 0 fac n 1 n fac Int gt Int fac n n 0 1 n gt 0 fac n
  • 如何连接蓝牙 a2dp 设备?

    我正在尝试将运行 android 4 1 的 Android 设备与支持 a2dp 的音频接收器配对 我可以在蓝牙设置屏幕上毫无问题地做到这一点 但我很难在代码中做到这一点 基本上我能够发现该设备 但无法通过套接字连接到它 也许我使用了错误
  • 将 cookie 从第一个响应复制到下一个请求

    我使用 HttpRequest gt send 发送第一个 HTTP 请求 并收到带有以下 Set Cookie 标头的 302 响应 设置 Cookie SESSION SCOPE 1 路径 设置 Cookie III EXPT FILE
  • 同一 WAR 中的多个 JAX-RS 应用程序

    I have ApplicationPath resourcesP public class RestfulPrediction extends Application Override public Set