2017-10-20 134 views
4

我使用这些设置弹簧INITIALIZR:春Initializr Basic项目不会建

  • 的Java
  • Maven的
  • 2.0.0(快照)
  • 网络
  • JPA
  • H2
  • Thymeleaf

我每次尝试运行./mvnw spring-boot:run它失败,此错误。不知道发生了什么问题。我尝试在spring initializr中使用其他项目变体,并使用mvn dependency:purge-local-repository删除所有我的maven回购。重建是成功的,但是当我尝试开始Spring时,这个问题就出现了。

. ____   _   __ _ _ 
/\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
(()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
\\/ ___)| |_)| | | | | || (_| | )))) 
    ' |____| .__|_| |_|_| |_\__, |//// 
=========|_|==============|___/=/_/_/_/ 
:: Spring Boot :: (v2.0.0.BUILD-SNAPSHOT) 

2017-10-20 14:02:15.099 INFO 11891 --- [   main] c.e.c.s.Spring5webappApplication   : Starting Spring5webappApplication on Clements-MacBook-Pro.local with PID 11891 (/Users/clement/Downloads/spring5webapp/target/classes started by clement in /Users/clement/Downloads/spring5webapp) 
2017-10-20 14:02:15.101 INFO 11891 --- [   main] c.e.c.s.Spring5webappApplication   : No active profile set, falling back to default profiles: default 
2017-10-20 14:02:15.157 INFO 11891 --- [   main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.ser[email protected]5184cd62: startup date [Fri Oct 20 14:02:15 NZDT 2017]; root of context hierarchy 
WARNING: An illegal reflective access operation has occurred 
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (file:/Users/clement/.m2/repository/org/springframework/spring-core/5.0.1.BUILD-SNAPSHOT/spring-core-5.0.1.BUILD-SNAPSHOT.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) 
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils$1 
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations 
WARNING: All illegal access operations will be denied in a future release 
2017-10-20 14:02:16.592 INFO 11891 --- [   main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$c4da628] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2017-10-20 14:02:17.250 INFO 11891 --- [   main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 
2017-10-20 14:02:17.264 INFO 11891 --- [   main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 
2017-10-20 14:02:17.265 INFO 11891 --- [   main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.23 
2017-10-20 14:02:17.361 INFO 11891 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]  : Initializing Spring embedded WebApplicationContext 
2017-10-20 14:02:17.361 INFO 11891 --- [ost-startStop-1] o.s.web.context.ContextLoader   : Root WebApplicationContext: initialization completed in 2209 ms 
2017-10-20 14:02:17.517 INFO 11891 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/] 
2017-10-20 14:02:17.522 INFO 11891 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 
2017-10-20 14:02:17.522 INFO 11891 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 
2017-10-20 14:02:17.522 INFO 11891 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 
2017-10-20 14:02:17.522 INFO 11891 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 
2017-10-20 14:02:17.522 INFO 11891 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'webRequestLoggingFilter' to: [/*] 
2017-10-20 14:02:17.743 INFO 11891 --- [   main] com.zaxxer.hikari.HikariDataSource  : testdb - Starting... 
2017-10-20 14:02:17.875 INFO 11891 --- [   main] com.zaxxer.hikari.HikariDataSource  : testdb - Start completed. 
2017-10-20 14:02:17.942 INFO 11891 --- [   main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default' 
2017-10-20 14:02:17.968 INFO 11891 --- [   main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 
    name: default 
    ...] 
2017-10-20 14:02:18.073 INFO 11891 --- [   main] org.hibernate.Version     : HHH000412: Hibernate Core {5.2.11.Final} 
2017-10-20 14:02:18.074 INFO 11891 --- [   main] org.hibernate.cfg.Environment   : HHH000206: hibernate.properties not found 
2017-10-20 14:02:18.094 WARN 11891 --- [   main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 
2017-10-20 14:02:18.095 INFO 11891 --- [   main] com.zaxxer.hikari.HikariDataSource  : testdb - Shutdown initiated... 
2017-10-20 14:02:18.100 INFO 11891 --- [   main] com.zaxxer.hikari.HikariDataSource  : testdb - Shutdown completed. 
2017-10-20 14:02:18.102 INFO 11891 --- [   main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 
2017-10-20 14:02:18.122 INFO 11891 --- [   main] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 
2017-10-20 14:02:18.129 ERROR 11891 --- [   main] o.s.boot.SpringApplication    : Application startup failed 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1704) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:583) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083) ~[spring-context-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:858) ~[spring-context-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:122) ~[spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1245) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1233) [spring-boot-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 
    at com.example.clement.spring5webapp.Spring5webappApplication.main(Spring5webappApplication.java:10) [classes/:na] 
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] 
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] 
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] 
    at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na] 
    at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:496) [spring-boot-maven-plugin-2.0.0.BUILD-SNAPSHOT.jar:2.0.0.BUILD-SNAPSHOT] 
    at java.base/java.lang.Thread.run(Thread.java:844) [na:na] 
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 
    at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) ~[hibernate-core-5.2.11.Final.jar:5.2.11.Final] 
    at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:87) ~[hibernate-core-5.2.11.Final.jar:5.2.11.Final] 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:208) ~[hibernate-core-5.2.11.Final.jar:5.2.11.Final] 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:163) ~[hibernate-core-5.2.11.Final.jar:5.2.11.Final] 
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:51) ~[spring-orm-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:358) ~[spring-orm-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:384) ~[spring-orm-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:373) ~[spring-orm-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1763) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1700) ~[spring-beans-5.0.1.BUILD-SNAPSHOT.jar:5.0.1.BUILD-SNAPSHOT] 
    ... 22 common frames omitted 
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException 
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466) ~[na:na] 
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563) ~[na:na] 
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) ~[na:na] 
    ... 32 common frames omitted 

[WARNING] 
java.lang.reflect.InvocationTargetException 
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.base/java.lang.reflect.Method.invoke(Method.java:564) 
    at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:496) 
    at java.base/java.lang.Thread.run(Thread.java:844) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1704) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:583) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:858) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) 
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:122) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1245) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1233) 
    at com.example.clement.spring5webapp.Spring5webappApplication.main(Spring5webappApplication.java:10) 
    ... 6 more 
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 
    at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) 
    at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:87) 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:208) 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:163) 
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:51) 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:358) 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:384) 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:373) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1763) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1700) 
    ... 22 more 
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException 
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466) 
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563) 
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) 
    ... 32 more 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 10.335 s 
[INFO] Finished at: 2017-10-20T14:02:18+13:00 
[INFO] Final Memory: 45M/149M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.0.0.BUILD-SNAPSHOT:run (default-cli) on project spring5webapp: An exception occurred while running. null: InvocationTargetException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException: javax.xml.bind.JAXBException -> [Help 1] 
+0

您使用的是Java 9吗? –

+0

是的,我是。我是否需要切换回8? – Clement

回答

4

我重新配置与

spring init --dependencies=actuator,data-jpa,h2,thymeleaf,web spring5webapp 

构建应用程序所需的以下更改的pom.xml

<project> 
    <properties> 
     <java.version>1.9</java.version> 
    </properties> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.20.1</version> 
       <configuration> 
        <argLine>--add-modules java.xml.bind</argLine> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.6</version> 
       <dependencies> 
        <dependency> 
         <groupId>org.codehaus.plexus</groupId> 
         <artifactId>plexus-archiver</artifactId> 
         <version>3.4</version> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

运行mvn spring-boot:run失败,你在上述错误。但下面的解决了这一问题:

<project> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <jvmArguments>--add-modules java.xml.bind</jvmArguments> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

的一个问题是,现在java.xml.bind在java.se.ee,而不是在java.base,所以我明确地添加模块。 maven-jar-plugin部分是bug

+0

甜美!非常感谢你详细解释这个问题:)真的很感激它。帮助像我这样的Java新手。 – Clement