web-dev-qa-db-ja.com

java.lang.NoClassDefFoundError:org / springframework / Beans / factory / config / EmbeddedValueResolver

最近、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:
2
Steven

あなたのいじくり回されたpomにはこのdepがあります:

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.2.9.RELEASE</version>
</dependency>

EmbeddedValueResolverは Spring 4. で導入されました

依存関係をクリーンアップすることをお勧めします。おそらく、春の豆を4.3まで引き上げるだけで十分です

6
Matt