【问题标题】:Jetty error: java.lang.NoClassDefFoundError: org/springframework/transaction/TransactionDefinition码头错误:java.lang.NoClassDefFoundError:org/springframework/transaction/TransactionDefinition
【发布时间】:2011-09-12 20:17:02
【问题描述】:

0.0.M2 和 Spring 用于 Web 应用程序。 问题是war文件可以部署在Tomcat上并在Tomcat上正确执行。但它不能在码头上工作。我将码头作为独立程序运行。也就是说我只是把war文件复制到jetty的webapp目录下,使用“java -jar start.jar”

HTTP 错误 500

访问 /IOServer/schema/loadschemalist.json 时出现问题。原因:

org/springframework/transaction/TransactionDefinition

原因:

java.lang.NoClassDefFoundError: org/springframework/transaction/TransactionDefinition 在 com.fixflyer.service.aggregation.Aggregator.createMessageProcessor(Aggregator.java:47) 在 com.fixflyer.service.configuration.ConfigService.loadSchema(ConfigService.java:41) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710) 在 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167) 在 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414) 在 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) 在 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:754) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 在 org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:479) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:230) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:956) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:188) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:891) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 在 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247) 在 org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114) 在 org.eclipse.jetty.server.Server.handle(Server.java:353) 在 org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:598) 在 org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1076) 在 org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) 在 org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) 在 org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:427) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662) 引起:java.lang.ClassNotFoundException:org.springframework.transaction.TransactionDefinition 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:417) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:370) ... 40 更多

原因:

java.lang.ClassNotFoundException: org.springframework.transaction.TransactionDefinition 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:417) 在 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:370) 在 com.fixflyer.service.aggregation.Aggregator.createMessageProcessor(Aggregator.java:47) 在 com.fixflyer.service.configuration.ConfigService.loadSchema(ConfigService.java:41) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710) 在 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167) 在 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414) 在 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) 在 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:754) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 在 org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:479) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:230) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:956) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:188) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:891) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 在 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247) 在 org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114) 在 org.eclipse.jetty.server.Server.handle(Server.java:353) 在 org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:598) 在 org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1076) 在 org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) 在 org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) 在 org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:427) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662)

由 Jetty 提供支持://

【问题讨论】:

    标签: spring jetty


    【解决方案1】:

    添加这个依赖

    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-tx</artifactId>
       <version>5.1.2.RELEASE</version>
    </dependency>
    

    【讨论】:

    • 如果想查看当前版本:here's the link
    • 这对我有用。使用 Cucumber 时遇到同样的错误。谢谢!
    【解决方案2】:

    我在 IntelliJ 中运行特定黄瓜场景测试时遇到了这个问题,我不得不删除 编辑配置的 Glue 部分中的“cucumber.api.spring”。

    Reference Link

    【讨论】:

      猜你喜欢
      • 2018-08-27
      • 2014-02-07
      • 2018-01-30
      • 2020-03-26
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多