2

私はスプリングブーツのサンプルを試していました。これは具体的には、実行しようとしているspring-boot-sample-tomcatの例です。

指示通り、実行mvn packageして成功しました。しかし、 jar を実行するjava -jar target/spring-boot-sample-tomcat-0.5.0.BUILD-SNAPSHOT.jarと、以下の例外が発生します。

クラスパスに配置する必要がある jar があるかどうかを確認してください。または、それを実行するために何をすべきか。

使用されているpom.xmlへのリンク。

Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
        at java.lang.Class.getDeclaredMethod(Class.java:1935)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at org.springframework.boot.loader.LaunchedURLClassLoader.findClass(LaunchedURLClassLoader.java:110)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at org.springframework.boot.loader.LaunchedURLClassLoader.doLoadClass(LaunchedURLClassLoader.java:93)
        at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:65)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        ... 5 more
4

3 に答える 3

4

このセグメントを pom に追加してみてください:

<properties>
  <start-class>org.springframework.boot.sample.tomcat.SampleTomcatApplication</start-class>
</properties>

これは、明示的に使用する「メイン」を定義します。スプリング ブートは自動的にメインを取得することになっていますが、明示的であることは良い方法です。それが、私が取り組んでいた別のプロジェクトを「java -jar」呼び出しを使用して機能させることができた唯一の方法でした。

于 2013-10-18T16:43:24.890 に答える
1

私はちょうど実行しました:

$ git fetch upstream
$ git merge upstream/master
Already up-to-date.
$ cd spring-boot-samples/spring-boot-sample-tomcat/
$ mvn clean package && java -jar target/spring-boot-sample-tomcat-0.5.0.BUILD-SNAPSHOT.jar
...
Results :

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
...
2013-09-23 08:52:33.713  INFO 698 --- [           main] o.s.b.s.tomcat.SampleTomcatApplication   : Starting SampleTomcatApplication on retina with PID 698 (/Users/gturnquist/src/spring-boot/spring-boot-samples/spring-boot-sample-tomcat/target/spring-boot-sample-tomcat-0.5.0.BUILD-SNAPSHOT.jar started by gturnquist)
2013-09-23 08:52:33.753  INFO 698 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@21301fa: startup date [Mon Sep 23 08:52:33 CDT 2013]; root of context hierarchy
2013-09-23 08:52:34.673  INFO 698 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2013-09-23 08:52:34.674  INFO 698 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.42
2013-09-23 08:52:34.753  INFO 698 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2013-09-23 08:52:34.754  INFO 698 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1004 ms
2013-09-23 08:52:34.902  INFO 698 --- [ost-startStop-1] o.s.b.s.tomcat.SampleTomcatApplication   : ServletContext initialized
2013-09-23 08:52:34.918  INFO 698 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2013-09-23 08:52:34.919  INFO 698 --- [ost-startStop-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2013-09-23 08:52:34.991  INFO 698 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2013-09-23 08:52:35.127  INFO 698 --- [ost-startStop-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String org.springframework.boot.sample.tomcat.web.SampleController.helloWorld()
2013-09-23 08:52:35.169  INFO 698 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2013-09-23 08:52:35.169  INFO 698 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2013-09-23 08:52:35.377  INFO 698 --- [ost-startStop-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 458 ms
2013-09-23 08:52:37.548  INFO 698 --- [           main] o.s.b.s.tomcat.SampleTomcatApplication   : Started SampleTomcatApplication in 4.299 seconds

おそらく、クローンを更新して再構築する必要がありますか?

于 2013-09-23T13:54:31.220 に答える