java.lang.IllegalArgumentException jersey.repackaged.org.objectweb.asm.ClassReader.(ClassReader.java:170)

2024-03-04

我正在 eclipse 中使用 Tomcat 7.0 + Maven + Java EE + JDK 10.0.2 创建 api 休息,并收到此错误:

Error:

HTTP 状态 500 - servlet api 的 Servlet.init() 引发异常

类型异常报告

servlet api 的消息 Servlet.init() 抛出异常

描述 服务器遇到内部错误,导致无法正常运行 从满足这个要求。

异常 javax.servlet.ServletException:servlet 的 Servlet.init() api抛出异常 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) java.base/java.lang.Thread.run(Thread.java:844)

根本原因 java.lang.IllegalArgumentException jersey.repackaged.org.objectweb.asm.ClassReader。(ClassReader.java:170) jersey.repackaged.org.objectweb.asm.ClassReader。(ClassReader.java:153) jersey.repackaged.org.objectweb.asm.ClassReader。(ClassReader.java:424) com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:138) com.sun.jersey.spi.scanning.servlet.WebAppResourcesScanner$2.f(WebAppResourcesScanner.java:104) com.sun.jersey.core.util.Closing.f(Closing.java:71) com.sun.jersey.spi.scanning.servlet.WebAppResourcesScanner.scan(WebAppResourcesScanner.java:102) com.sun.jersey.spi.scanning.servlet.WebAppResourcesScanner.scan(WebAppResourcesScanner.java:89) com.sun.jersey.spi.scanning.servlet.WebAppResourcesScanner.scan(WebAppResourcesScanner.java:89) com.sun.jersey.spi.scanning.servlet.WebAppResourcesScanner.scan(WebAppResourcesScanner.java:89) com.sun.jersey.spi.scanning.servlet.WebAppResourcesScanner.scan(WebAppResourcesScanner.java:89) com.sun.jersey.spi.scanning.servlet.WebAppResourcesScanner.scan(WebAppResourcesScanner.java:79) com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:80) com.sun.jersey.api.core.servlet.WebAppResourceConfig.init(WebAppResourceConfig.java:102) com.sun.jersey.api.core.servlet.WebAppResourceConfig。(WebAppResourceConfig.java:89) com.sun.jersey.api.core.servlet.WebAppResourceConfig。(WebAppResourceConfig.java:74) com.sun.jersey.spi.container.servlet.WebComponent.getWebAppResourceConfig(WebComponent.java:668) com.sun.jersey.spi.container.servlet.ServletContainer.getDefaultResourceConfig(ServletContainer.java:435) com.sun.jersey.spi.container.servlet.ServletContainer.getDefaultResourceConfig(ServletContainer.java:602) com.sun.jersey.spi.container.servlet.WebServletConfig.getDefaultResourceConfig(WebServletConfig.java:87) com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:699) com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:674) com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:205) com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394) com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577) javax.servlet.GenericServlet.init(GenericServlet.java:160) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) java.base/java.lang.Thread.run(Thread.java:844)

注意 根本原因的完整堆栈跟踪可在 Apache Tomcat/7.0.47 日志。

阿帕奇汤姆猫/7.0.47

web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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" version="3.0">
      <display-name>api</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <servlet>
        <servlet-name>api</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>api</servlet-name>
        <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>
    </web-app>

pom.xml

 <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>api</groupId>
        <artifactId>api</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                    <configuration>
                        <release>10</release>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.1</version>
                    <configuration>
                        <warSourceDirectory>WebContent</warSourceDirectory>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>asm</groupId>
                <artifactId>asm</artifactId>
                <version>3.3.1</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-bundle</artifactId>
                <version>1.19.4</version>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20170516</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
                <version>1.19.4</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>1.19.4</version>
            </dependency>
        </dependencies>
    </project>

经过一番挖掘后,我发现IllegalArgumentException被 Jersey 重新打包的 ASM 库抛出。

我不能确定我的版本是否正确,但在第 170 行,代码如下:

    // checks the class version
    // added "support" for java 9 compiled classes
    if (readShort(off + 6) > Opcodes.V9) {
        throw new IllegalArgumentException();
    }

该代码正在检查它尝试读取的类的类文件版本号,并抛出IllegalArgumentException如果太新了。

简而言之,您正在尝试使用一些使用 Java 编译器编译的 Java 类,而该编译器对于 ASM 库来说太新了:

  • 使用较旧的 JDK 或设置-target版本较旧。
  • 或者,找到/安装经过您正在构建的 Java 版本认证的 Jersey 版本。

让我感到奇怪的一件事是,您对 POM 文件中的旧版本“asm”有明确的依赖。但是,堆栈跟踪表明您没有使用该版本。

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

java.lang.IllegalArgumentException jersey.repackaged.org.objectweb.asm.ClassReader.(ClassReader.java:170) 的相关文章

随机推荐

  • ZF2 文件上传集合

    我无法让我的文件上传集合正常工作 这就是我所做的 https gist github com manuakasam 1ac71daf7269616f55f0 https gist github com manuakasam 1ac71daf
  • Spring websocket - 如何获取会话数

    我在用着this https spring io guides gs messaging stomp websocket 教程 我试图弄清楚如何获取当前会话的数量 我的 WebSocketConfig 如下所示 从教程中复制并粘贴 Conf
  • Spring Boot JacksonTester 自定义序列化器未注册

    尝试运行 Jackson 库来完成一些即将进行的工作 我有以下测试模型 地址 java package com example domain import java time LocalDate import org apache comm
  • 两个值之间的百分比差异

    我使用以下简单的 JavaScript 代码来计算两个值之间的百分比差异 subOBS001 vars obs001acount vars obs001asent divOBS001 subOBS001 vars obs001asent m
  • 在批准之前测试 Facebook 集成

    我想测试一个正在开发的移动应用程序 它将使用 Facebook API 来登录用户并读取共同的好友信息 然而 据我所知 除非应用程序经过验证 否则我无法使用 API 登录用户 但为了验证应用程序 审核团队将 需要测试和验证 我的 Faceb
  • Android Studio - 模拟器:进程已完成,退出代码 -1073741819 (0xC0000005)

    每当我尝试使用模拟器运行 Android 应用程序时 都会出现错误消息 模拟器 进程已完成 退出代码 1073741819 0xC0000005 随着 模拟器 无法初始化模拟帧缓冲区 有什么解决办法吗 您应该擦除 avd 管理器中的数据并冷
  • 如何降级命令行工具 MacOS

    我遇到了动态链接器错误 clock gettime符号所以我按照这篇文章所说的做了通过 RVM 在 OS X 10 11 6 上安装 ruby 2 3 0 时缺少符号 https stackoverflow com questions 39
  • Mongoose 可选搜索查询参数?

    我有以下情况 我需要根据某些参数 如果存在 构建猫鼬查询 IE 如果这样的对象被传递 player nickname action capture 执行以下搜索 Entry find player obj player action obj
  • 如何使用贝塞尔曲线沿着路径制作图像动画

    My goal 沿着如下图所示的路径移动 动画图像 可能连接贝塞尔曲线 必须在 IE7 下工作 不要构建多个解决方案 我可以暂停 恢复移动图像 图像将沿着路径继续移动 重复 我考虑过什么 CANVAS IE7 8不支持 尚未测试explor
  • 如何将 JavaScript 变量插入包含 Jinja 标记的字符串中?

    我有一个 javascript 函数 它尝试动态地将锚标记插入到网页中 其 href 属性是 Flask 路由的 url 这个烧瓶路线接受一个参数username 我想设置username为 JavaScript 变量的值 我尝试过使用模板
  • 内存泄漏是否有可接受的限制?

    我刚刚开始在 C 中尝试 SDL 我认为定期检查内存泄漏可能是尽早养成的好习惯 考虑到这一点 我一直通过 Valgrind 运行我的 Hello world 程序来捕获任何泄漏 尽管我已经删除了除最基本的之外的所有内容SDL Init an
  • 服务暂停时更新活动数据

    假设我有一个包含数据对象的活动 它根据该对象更新其 GUI 组件 现在假设它已暂停 调用 OnPause 但未停止或销毁 同时 收到推送通知 intentservice 已启动 我需要使用推送通知对象更新该对象 以便在应用程序恢复时更新 g
  • jquery ajax调用返回值

    我有一个带有静态页面方法的 asp net 应用程序 我使用下面的代码来调用该方法并获取其返回值 ajax type POST url myPage myMethod data parameter paramValue contentTyp
  • 导入错误:无法导入名称force_text

    我已在 CentOS 计算机中安装了 Python 2 7 和 Django 1 4 并安装了现有项目的所有依赖项 当我跑步时python manage py runserver 我在控制台中收到以下回溯 root localhost bv
  • Mongoose - 由 :: 11000 E11000 重复键错误索引引起?

    为什么我会收到此重复错误 Error creating new user WriteError code 11000 index 0 errmsg insertDocument caused by 11000 E11000 duplicat
  • 尝试从导入的包导入模块时出现“ModuleNotFoundError”

    这是我的目录结构 man Mans man1 py MansTest SoftLib Soft SoftWork manModules py Unittests man1test py man1 py包含以下内容import陈述 我不想改变
  • 对 Javascript 的变量范围感到困惑

    我发现自己在 Javascript 的变量范围内 有人可以向我解释为什么第一个示例不起作用但第二个示例起作用吗 function test return typeof the variable undefined the variable
  • 使用 Spring boot 预授权和自定义 AuthenticationFilter

    我有自定义身份验证过滤器 它创建 PreAuthenticatedAuthenticationToken 并将其存储在安全上下文中 过滤器工作正常 它使用适当的授予权限 ROLE user 和 ROLE adminuser 创建令牌 这是我
  • 使用 Matplotlib imshow 将没有数据的点设置为白色

    我正在使用 matplotlib imshow 绘制 numpy 数组中的数据 然而 有些点没有数据 我使用 np zeroes 初始化了数组 因此这些点会拖拽整个地图 我知道没有任何数据的值为 0 0 有什么方法可以让我告诉 imshow
  • java.lang.IllegalArgumentException jersey.repackaged.org.objectweb.asm.ClassReader.(ClassReader.java:170)

    我正在 eclipse 中使用 Tomcat 7 0 Maven Java EE JDK 10 0 2 创建 api 休息 并收到此错误 Error HTTP 状态 500 servlet api 的 Servlet init 引发异常 类