当前位置: 首页 > 知识库问答 >
问题:

Java11从jersey 1.19.4升级到2.29

商高谊
2023-03-14

在Jersey升级期间,来自com的许多API。太阳支持Java11的jersey 2.29不支持jersey。以下API的替代方案应该是什么?

ServletHolder sh = new ServletHolder(ServletContainer.class);
            sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass",
            "com.sun.jersey.api.core.PackagesResourceConfig");
            sh.setInitParameter(PackagesResourceConfig.PROPERTY_PACKAGES,
                    String.format("%s;%s", ThrowableMapper.class.getPackage().getName(), packageName));
            sh.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", Boolean.TRUE.toString());
ServletContextHandler context = new ServletContextHandler();
            if (contextPath.indexOf("/") == 0) {
                contextPath = contextPath.substring(1);
            }
            context.setContextPath(String.format("/api/mid/%s", contextPath));
            context.addServlet(sh, "/*");

共有1个答案

姚智
2023-03-14
("com.sun.jersey.api.json.POJOMappingFeature", Boolean.TRUE.toString()); 

用于提供POJO支持,而在2中。x、 Jersey几乎没有像JSON绑定这样的自动发现功能,我们只需要在pom中添加依赖项,以便将它们加载到类路径中。

("com.sun.jersey.config.property.resourceConfigClass","com.sun.jersey.api.core.PackagesResourceConfig")    

用于创建resourceConfigClass的实例。虽然在少数论坛中提到,即使没有实例化,也会动态创建一个实例来添加资源。现在在2。如果服务器属性为x。使用PROVIDER\u包,然后ServletContainer的源代码也确认了这一点,因此我们不需要单独实例化resourceConfigClass。因此,这个参数可以很容易地删除。

(PackagesResourceConfig.PROPERTY_PACKAGES,
                String.format("%s;%s", ThrowableMapper.class.getPackage().getName(), packageName));    

PROVIDER_PACKAGES应该用于上述代码,而不是PackagesResourceConfig.PROPERTY_PACKAGES。

 类似资料:
  • 今天我安装了JDK11,我所有的JavaFX东西都变得混乱了。公平地说,甲骨文可以做他们想做的事情。我试图让我的项目回到可运行的状态,这是我第一次遇到这种模块化的东西,所以不知道到底发生了什么。 我已经设法将这些库作为Maven中的依赖项导入(尽管它在Maven中找不到某些库的版本11,我最终使用11-EA+19来实现javafx-controls等--不管怎样…),所以我的代码可以很好地编译这些

  • 为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。 这篇文档仅仅描述了从版本 2.0 到 2.2 的变化,如果你是从1.3版进行升级的,请查考从1.3升级到2.0文档。 编译时配置的改变 编译过程与2.0版本非常相似,你曾经使用过的configure命令行(在安装目录下的build/co

  • 为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。 编译时配置的改变 Apache现在使用autoconf和libtool系统来进行安装进程的配置。这个系统用起来很像Apache1.3的APACI系统,但并不相同。 在普通的选择编译模块的基础上,Apache2.0把请求进程的主要部分移到

  • WARNING 本升级指南仅适用于 2.2 版本升级至 2.3 版本,如果你并非 2.2 版本,请查看其他升级指南,Plus 程序不允许跨版本升级! 更新代码 预计耗时: 2 小时 这是你自我操作的步骤,确认将你的 2.2 版本代码升级到 2.3 版本,如果你做过一些自定义修改可能会出现代码冲突,你需要解决。 升级依赖 预计耗时: 3 分钟 进入 Plus 程序目录,执行: composer up

  • WARNING 本升级指南仅适用于 2.1 版本升级至 2.2 版本,如果你并非 2.1 版本,请查看其他升级指南,Plus 程序不允许跨版本升级! 更新代码 预计耗时: 1 小时 这是你自我操作的步骤,确认将你的 2.1 版本代码升级到 2.2 版本,如果你做过一些自定义修改可能会出现代码冲突,你需要解决。 升级依赖 预计耗时: 3 分钟 进入 Plus 程序目录,执行: composer up

  • WARNING 本升级指南仅适用于 2.0 版本升级至 2.1 版本,如果你并非 2.0 版本,请查看其他升级指南,Plus 程序不允许跨版本升级! 更新代码 预计耗时: 1 小时 这是你自我操作的步骤,确认将你的 2.0 版本代码升级到 2.1 版本,如果你做过一些自定义修改可能会出现代码冲突,你需要解决。 升级依赖 预计耗时: 3 分钟 进入 Plus 程序目录,执行: composer up