[英]java.lang.IllegalArgumentException when trying to run a clojure web application
[英]java.lang.IllegalArgumentException: Error when trying to build Restful Web Service
我正在嘗試通過遵循本教程來構建簡單的Rest Web服務
但是,當我在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)
有人可以告訴我我錯了嗎? 先感謝您。 對不起,我的英語不好
將一些開放的依賴項更新到新版本后,我的Maven項目中出現了相同的錯誤。 就我而言,他們是
<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>
分別下載了
mybatis-spring-2.0.0-SNAPSHOT.jar
mybatis-3.5.0-SNAPSHOT.jar
eclipselink-3.0.0-SNAPSHOT.jar
我在Maven資源庫(通常類似於{user-home}/.m2/repository
/。m2 {user-home}/.m2/repository
)中搜索了JAR的歷史記錄,發現所有JAR都是在收到此錯誤之日更新的。
我使用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>
然后更新依賴關系。 Maven下載
mybatis-spring-1.3.2.jar
mybatis-3.4.6.jar
eclipselink-2.5.0.jar
相反,一切正常。
甚至不知道您是否正在使用pom.xml(Maven項目),但是您當然正在運行Tomcat,因此請檢查您的內部是否存在一些不兼容或最近修改過的jar版本
{catalina.base}/lib
或者您的網絡應用
WEB-INF/lib
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.