最近、jhipsterで生成されたアプリ(Spring Boot + Angular)をアップグレードすることができました
コードをクリーンアップし、いくつかの注釈を適応させた後に問題が発生します。今では、Mavenを実行すると成功しますclean - install skipping tests
しかし、アプリを起動しようとすると、タイトルに記載されているエラーが発生します
重複する依存関係についてpomをチェックし、プロパティファイルをクリーンアウトしましたが、結果はありませんでした
これは完全なエラーです:
2017-11-30 10:12:57.821 INFO 4320 --- [ restartedMain] o.w.d.DrugQualityDataManagerApp : Starting DrugQualityDataManagerApp on steven-OptiPlex-7040 with PID 4320 (/home/steven/Desktop/Upgraded_MQ/target/classes started by steven in /home/steven/Desktop/Upgraded_MQ)
2017-11-30 10:12:57.821 INFO 4320 --- [ restartedMain] o.w.d.DrugQualityDataManagerApp : The following profiles are active: swagger,dev
2017-11-30 10:12:57.874 ERROR 4320 --- [ restartedMain] o.s.boot.SpringApplication : Application startup failed
Java.lang.NoClassDefFoundError: org/springframework/beans/factory/config/EmbeddedValueResolver
at org.springframework.context.support.ApplicationContextAwareProcessor.<init>(ApplicationContextAwareProcessor.Java:72)
at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.Java:634)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:518)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.Java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.Java:693)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.Java:360)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:303)
at org.wwarn.drugquality.DrugQualityDataManagerApp.main(DrugQualityDataManagerApp.Java:66)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.Java:49)
Caused by: Java.lang.ClassNotFoundException: org.springframework.beans.factory.config.EmbeddedValueResolver
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:381)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:424)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:331)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:357)
... 13 common frames omitted
2017-11-30 10:12:58.127 WARN 4320 --- [ restartedMain] ationConfigEmbeddedWebApplicationContext : Exception thrown from LifecycleProcessor on context close
Java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@350e9339: startup date [Thu Nov 30 10:12:57 GMT 2017]; root of context hierarchy
at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.Java:427)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.Java:999)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.Java:958)
at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.Java:750)
at org.springframework.boot.SpringApplication.run(SpringApplication.Java:314)
at org.wwarn.drugquality.DrugQualityDataManagerApp.main(DrugQualityDataManagerApp.Java:66)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.Java:49)
Disconnected from the target VM, address: '127.0.0.1:43599', transport: 'socket'
Process finished with exit code 1
私の pom.xml (SO post)の本文には長すぎるため、jsFiddleに埋め込む必要がありました)
プロパティファイル:
spring:
profiles:
active: dev
include: swagger
devtools:
restart:
enabled: true
livereload:
enabled: false # we use gulp + BrowserSync for livereload
jackson:
serialization.indent_output: true
datasource:
url: jdbc:mysql://localhost:3306/myDB?useUnicode=true&characterEncoding=utf8
username: myDB
password: myDB
h2:
console:
enabled: false
jpa:
database-platform: org.hibernate.dialect.MySQLDialect
database: MYSQL
show_sql: false
generate-ddl: true
hibernate:
ddl-auto: update
naming:
physical-strategy: org.wwarn.drugquality.config.HibernateAuditTablesNamingStrategy
properties:
hibernate.id.new_generator_mappings: true
hibernate.cache.use_second_level_cache: true
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: true
hibernate.cache.region.factory_class: org.hibernate.cache.jcache.JCacheRegionFactory
data:
elasticsearch:
cluster-name:
cluster-nodes:
properties:
path:
logs: target/elasticsearch/log
data: target/elasticsearch/data
mail:
Host: localhost
port: 25
username:
password:
messages:
cache-seconds: 1
thymeleaf:
cache: false
liquibase:
contexts: dev
server:
port: 8080
jhipster:
http:
version: V_1_1 # To use HTTP/2 you will need SSL support (see above the "server.ssl" configuration)
cache: # Cache configuration
ehcache: # Ehcache configuration
time-to-live-seconds: 3600 # By default objects stay 1 hour in the cache
max-entries: 100 # Number of objects in each cache entry
# CORS is only enabled by default with the "dev" profile, so BrowserSync can access the API
cors:
allowed-origins: "*"
allowed-methods: "*"
allowed-headers: "*"
allow-credentials: true
max-age: 1800
security:
remember-me:
# security key (this key should be unique for your application, and kept secret)
key: daKey
mail: # specific JHipster mail property, for standard properties see MailProperties
from: DrugQualityDataManager@localhost
base-url: http://127.0.0.1:8080
metrics: # DropWizard Metrics configuration, used by MetricsConfiguration
jmx.enabled: true
graphite: # Use the "graphite" Maven profile to have the Graphite dependencies
enabled: false
Host: localhost
port: 2003
prefix: DrugQualityDataManager
prometheus: # Use the "prometheus" Maven profile to have the Prometheus dependencies
enabled: false
endpoint: /prometheusMetrics
logs: # Reports Dropwizard metrics in the logs
enabled: false
report-frequency: 60 # in seconds
logging:
logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration
enabled: false
Host: localhost
port: 5000
queue-size: 512
# ===================================================================
# Application specific properties
# Add your own application properties here, see the ApplicationProperties class
# to have type-safe configuration, like in the JHipsterProperties above
#
# More documentation is available at:
# http://www.jhipster.tech/common-application-properties/
# ===================================================================
application:
あなたのいじくり回されたpomにはこのdepがあります:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.2.9.RELEASE</version>
</dependency>
EmbeddedValueResolverは Spring 4. で導入されました
依存関係をクリーンアップすることをお勧めします。おそらく、春の豆を4.3まで引き上げるだけで十分です