[英]java.lang.IllegalArgumentException: Error when trying to build Restful Web Service
I am trying to build a simple Rest web service by following this tutorial 我正在尝试通过遵循本教程来构建简单的Rest Web服务
But when i run this project on Eclipse, an Error appears: 但是,当我在Eclipse上运行此项目时,出现错误:
Mar 11, 2018 8:39:33 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet [Distance] in web application [/Distance] threw load() exception
java.lang.IllegalArgumentException
at jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
at jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
at jersey.repackaged.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
at org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener.process(AnnotationAcceptingListener.java:170)
at org.glassfish.jersey.server.ResourceConfig.scanClasses(ResourceConfig.java:892)
at org.glassfish.jersey.server.ResourceConfig._getClasses(ResourceConfig.java:849)
at org.glassfish.jersey.server.ResourceConfig.getClasses(ResourceConfig.java:755)
at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1181)
at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1154)
at org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1150)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:322)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:315)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1230)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1174)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1066)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5370)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5668)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.base/java.lang.Thread.run(Thread.java:844)
Can someone please told me where i am wrong? 有人可以告诉我我错了吗? Thank you in advance. 先感谢您。 Sorry for my bad English 对不起,我的英语不好
I had the same error in my Maven project after some open dependencies were updated to new versions. 将一些开放的依赖项更新到新版本后,我的Maven项目中出现了相同的错误。 In my case they were 就我而言,他们是
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>[1.3.2,)</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>[3.0.1,)</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>[2.5.0,)</version>
</dependency>
which respectively downloaded 分别下载了
mybatis-spring-2.0.0-SNAPSHOT.jar
mybatis-3.5.0-SNAPSHOT.jar
eclipselink-3.0.0-SNAPSHOT.jar
I searched for the JARs history inside Maven Respository (usually something like {user-home}/.m2/repository
) and found all JARs were update the day I got this error. 我在Maven资源库(通常类似于{user-home}/.m2/repository
/。m2 {user-home}/.m2/repository
)中搜索了JAR的历史记录,发现所有JAR都是在收到此错误之日更新的。
I restored the JARs' previous version using "closed" dependencies in my pom.xml
, ie: 我使用pom.xml
“ closed”依赖项恢复了JAR的先前版本,即:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>**2.5.0**</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>**1.3.2**</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>**3.4.6**</version>
</dependency>
then update the dependecies. 然后更新依赖关系。 Maven downloaded Maven下载
mybatis-spring-1.3.2.jar
mybatis-3.4.6.jar
eclipselink-2.5.0.jar
instead, and all worked fine. 相反,一切正常。
Don't even know whether you're using a pom.xml (Maven Project) but of course you're running Tomcat so check if there are some incompatible or recently modified jar versions inside your 甚至不知道您是否正在使用pom.xml(Maven项目),但是您当然正在运行Tomcat,因此请检查您的内部是否存在一些不兼容或最近修改过的jar版本
{catalina.base}/lib
or you web app 或者您的网络应用
WEB-INF/lib
Hope this helps. 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.