Tôi đã xem xét hệ thống mô-đun ghép hình của JDK 9.Java 9 - REST với Spring 5 & Jigsaw - Có thể không?
Nó hoạt động khá độc đáo khi biên dịch từ dòng lệnh (ít nhất là quickstart không).
Nhưng tôi đang cố tạo một API REST đơn giản bằng cách sử dụng Spring và Jigsaw. Spring 5.0.0 M1 được cho là có
Full compatibility with JDK 9 as of July 2016
Tôi cũng muốn REST API làm việc với Maven. Theo this Maven page, Maven sẽ có thể làm việc với Java 9 (hoặc tôi đọc sai điều này?).
Khi có điểm JAVA_HOME tôi để JDK của tôi, tôi dường như không thể chạy mvn spring-boot:run
trên ứng dụng Boot mùa xuân của tôi - nó ném rất nhiều trường hợp ngoại lệ, chẳng hạn như:
FoundError: javax/xml/bind/ValidationException
2016-09-14 10:43:42.704 ERROR 120408 --- [ main] o.s.boot.SpringApplication : Application startup failed
Chạy mvn -version
mang lại cho tôi:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)
Maven home: C:\Program Files\apache-maven-3.3.9\bin\..
Java version: 9-ea, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-9
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
Hiện tại, bạn có thể tạo API REST này bằng Spring và Java 9 bằng Jigsaw không? Hoặc tôi nên gắn bó với Java 8 cho đến khoảng tháng 3/tháng 7 năm 2017?
Full chồng đổ:
2016-09-14 10:43:42.688 WARN 120408 --- [ main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.bea ns.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedS ervletContainerFactory' defined in class path resource [org/springframework/boot /autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.clas s]: Initialization of bean failed; nested exception is org.springframework.beans .factory.UnsatisfiedDependencyException: Error creating bean with name 'org.spri ngframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration': Unsatisfied d ependency expressed through constructor parameter 0: Error creating bean with na me 'spring.http.encoding-org.springframework.boot.autoconfigure.web.HttpEncoding Properties': Initialization of bean failed; nested exception is java.lang.NoClas sDefFoundError: javax/xml/bind/ValidationException; nested exception is org.spri ngframework.beans.factory.BeanCreationException: Error creating bean with name ' spring.http.encoding-org.springframework.boot.autoconfigure.web.HttpEncodingProp erties': Initialization of bean failed; nested exception is java.lang.NoClassDef FoundError: javax/xml/bind/ValidationException
2016-09-14 10:43:42.704 ERROR 120408 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/Embed dedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of be an failed; nested exception is org.springframework.beans.factory.UnsatisfiedDepe ndencyException: Error creating bean with name 'org.springframework.boot.autocon figure.web.HttpEncodingAutoConfiguration': Unsatisfied dependency expressed thro ugh constructor parameter 0: Error creating bean with name 'spring.http.encoding -org.springframework.boot.autoconfigure.web.HttpEncodingProperties': Initializat ion of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/xm l/bind/ValidationException; nested exception is org.springframework.beans.factor y.BeanCreationException: Error creating bean with name 'spring.http.encoding-org .springframework.boot.autoconfigure.web.HttpEncodingProperties': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bi nd/ValidationException
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:535) ~[spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at hello.Application.main(Application.java:10) [classes/:na]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native Method) ~[na:na]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62) ~[na:na]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.lang.reflect.Method.invoke([email protected]/Method.java:535) ~[na:na]
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:483) [spring-boot-maven-plugin-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at java.lang.Thread.run([email protected]/Thread.java:843) [na:na]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAut oConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exce ption is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.HttpEncodin gAutoConfiguration': Unsatisfied dependency expressed through constructor parame ter 0: Error creating bean with name 'spring.http.encoding-org.springframework.b oot.autoconfigure.web.HttpEncodingProperties': Initialization of bean failed; ne sted exception is java.lang.NoClassDefFoundError: javax/xml/bind/ValidationExcep tion; nested exception is org.springframework.beans.factory.BeanCreationExceptio n: Error creating bean with name 'spring.http.encoding-org.springframework.boot. autoconfigure.web.HttpEncodingProperties': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/ValidationException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:199) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:162) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
... 14 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration': Unsatisfied dependency expressed through constructor para meter 0: Error creating bean with name 'spring.http.encoding-org.springframework .boot.autoconfigure.web.HttpEncodingProperties': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/ValidationExc eption; nested exception is org.springframework.beans.factory.BeanCreationExcept ion: Error creating bean with name 'spring.http.encoding-org.springframework.boo t.autoconfigure.web.HttpEncodingProperties': Initialization of bean failed; nest ed exception is java.lang.NoClassDefFoundError: javax/xml/bind/ValidationExcepti on
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:372) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
---- cắt đứt
Tóm tắt Lỗi:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin
:1.4.0.RELEASE:run (default-cli) on project gs-rest-service: An exception occurr
ed while running. null: InvocationTargetException: Unable to start embedded cont
ainer; nested exception is org.springframework.beans.factory.BeanCreationExcepti
on: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' define
d in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedSer
vletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean fai
led; nested exception is org.springframework.beans.factory.UnsatisfiedDependency
Exception: Error creating bean with name 'org.springframework.boot.autoconfigure
.web.HttpEncodingAutoConfiguration': Unsatisfied dependency expressed through co
nstructor parameter 0: Error creating bean with name 'spring.http.encoding-org.s
pringframework.boot.autoconfigure.web.HttpEncodingProperties': Initialization of
bean failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind
/ValidationException; nested exception is org.springframework.beans.factory.Bean
CreationException: Error creating bean with name 'spring.http.encoding-org.sprin
gframework.boot.autoconfigure.web.HttpEncodingProperties': Initialization of bea
n failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/Val
idationException: javax.xml.bind.ValidationException -> [Help 1]
Thêm toàn bộ stack, chúng tôi thực sự muốn nhìn thấy gì ngoại trừ bạn đang nhận được. "Ứng dụng khởi động thất bại" là không sử dụng cho chúng tôi. – rorschach
Chỉ cần loại bỏ ngoại lệ cấp thấp nhất. [Cách đọc một stacktrace] (https://bukkit.org/threads/how-to-read-stack-traces-and-troubleshoot-your-own-plugins-by-yourself.32457/) – rorschach