1

我正在尝试使用 YAML 文件将配置属性外部化。我成功地读取了属性并使用 Spring Boot 应用程序单独运行它。

但是当我在我的 Spring 批处理作业项目中集成相同的类并尝试部署该作业时,我得到了以下异常。异常是什么意思?如何禁用不正确的类转换?

这些是我的 Maven 依赖项:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.1.RELEASE</version>
</parent>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
     <groupId>org.springframework.batch</groupId>
     <artifactId>spring-batch-core</artifactId>
     <version>${springbatch.version}</version>
     <scope>provided</scope>
</dependency>

[2014-08-20 15:14:13.511] boot - 5604 ERROR [DeploymentsPathChildrenCache-0] --- ContainerRegistrar: Exception deploying module
java.lang.IllegalStateException: java.lang.ClassCastException: org.springframework.boot.logging.logback.LogbackLoggingSystem cannot be cast to org.springframework.boot.logging.LoggingSystem
        at org.springframework.boot.logging.LoggingSystem.get(LoggingSystem.java:85)
        at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:160)
        at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:122)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:98)
        at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:92)
        at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:58)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:275)
        at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:130)
        at org.springframework.xd.module.core.SimpleModule.initialize(SimpleModule.java:191)
        at org.springframework.xd.dirt.module.ModuleDeployer.deploy(ModuleDeployer.java:127)
        at org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:117)
        at org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:107)
        at org.springframework.xd.dirt.server.ContainerRegistrar.deployModule(ContainerRegistrar.java:237)
        at org.springframework.xd.dirt.server.ContainerRegistrar.deployJob(ContainerRegistrar.java:512)
        at org.springframework.xd.dirt.server.ContainerRegistrar.onChildAdded(ContainerRegistrar.java:442)
        at org.springframework.xd.dirt.server.ContainerRegistrar.access$800(ContainerRegistrar.java:96)
        at org.springframework.xd.dirt.server.ContainerRegistrar$DeploymentListener.childEvent(ContainerRegistrar.java:807)
        at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:509)
        at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:503)
        at org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92)
        at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
        at org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:83)
        at org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:500)
        at org.apache.curator.framework.recipes.cache.EventOperation.invoke(EventOperation.java:35)
        at org.apache.curator.framework.recipes.cache.PathChildrenCache$10.run(PathChildrenCache.java:762)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: org.springframework.boot.logging.logback.LogbackLoggingSystem cannot be cast to org.springframework.boot.logging.LoggingSystem
        at org.springframework.boot.logging.LoggingSystem.get(LoggingSystem.java:81)
        ... 31 more
[2014-08-20 15:14:13.601] boot - 5604  INFO [DeploymentsPathChildrenCache-0] --- ContainerRegistrar: Path cache event: /deployments/modules/a6acf7b1-32de-408a-ab96-4ece1df91115/NewJob3.job.database-sy
nchronizer-0, type: CHILD_REMOVED
[2014-08-20 15:14:13.602] boot - 5604  INFO [DeploymentsPathChildrenCache-0] --- ContainerRegistrar: Undeploying module [ModuleDescriptor@6436d9c4 moduleName = 'database-synchronizer', moduleLabel = [
null], group = 'NewJob3', sourceChannelName = [null], sinkChannelName = [null], sinkChannelName = [null], index = 0, type = job, parameters = map[[empty]], children = list[[empty]]]
[2014-08-20 15:14:13.605] boot - 5604 ERROR [JobDeploymentsPathChildrenCache-0] --- PathChildrenCache:
java.lang.IllegalStateException: Container a6acf7b1-32de-408a-ab96-4ece1df91115 experienced the following error deploying module database-synchronizer-0 of type job: java.lang.IllegalStateException: j
ava.lang.ClassCastException: org.springframework.boot.logging.logback.LogbackLoggingSystem cannot be cast to org.springframework.boot.logging.LoggingSystem
        at org.springframework.xd.dirt.server.ModuleDeploymentWriter.validateResults(ModuleDeploymentWriter.java:543)
        at org.springframework.xd.dirt.server.JobDeploymentListener.deployJob(JobDeploymentListener.java:146)
        at org.springframework.xd.dirt.server.JobDeploymentListener.onChildAdded(JobDeploymentListener.java:113)
        at org.springframework.xd.dirt.server.JobDeploymentListener.childEvent(JobDeploymentListener.java:97)
        at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:509)
        at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:503)
        at org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92)
        at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
        at org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:83)
        at org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:500)
        at org.apache.curator.framework.recipes.cache.EventOperation.invoke(EventOperation.java:35)
        at org.apache.curator.framework.recipes.cache.PathChildrenCache$10.run(PathChildrenCache.java:762)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

4

0 回答 0