【发布时间】:2021-04-08 06:26:36
【问题描述】:
我正在将 Spring Boot Java 项目从 openshift-jdk-8 迁移到 openshift-jdk-11。在 java-11 中,当项目在 openshift 云环境中部署为 docker 映像时,始终返回 null。在 Windows/本地环境中运行时,相同的代码运行良好。
getClassLoader().getResourceAsStream("mapper/myfile.xml")
从 bean-io 依赖加载文件
implementation("org.beanio:beanio:2.1.0")
我在这个 jar 的下面位置有文件。
BOOT-INF
--classes
--mapper/myfile.xml
遇到错误
2021-03-10T10:39:27.555-05:00,severity=ERROR,thread=ForkJoinPool-10-worker-3,
org.beanio.BeanIOConfigurationException: BeanIO mapping file 'mapper/myfile.xml' not found on classpath
at org.beanio.StreamFactory.loadResource(StreamFactory.java:213) ~[beanio-2.1.0.jar!/:2.1.0]
at org.beanio.StreamFactory.loadResource(StreamFactory.java:198) ~[beanio-2.1.0.jar!/:2.1.0]
at com.payment.ene.xerox.domain.SortIndexHandler.<init>(SortIndexHandler.java:51) ~[gen-copy-dmz.120.jar!/:?]
at com.payment.ene.xerox.domain.exstream.PrintFlowOrchestratorImpl.lambda$printPrep$0(CopyFlowOrchestratorImpl.java:100) ~[gen-copy-dmz.120.jar!/:?]
at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1448) [?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) [?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) [?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) [?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) [?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) [?:?]
任何解决此问题的建议
【问题讨论】:
-
在环境中进行两个根本性的更改是没有帮助的,即“windows/local”与“openshift cloud 中的 docker 映像”和“java 8”与“java 11”。您当然可以在本地 Windows 环境中使用 java 11 和 java 8 测试代码,以确定问题是否与 java 版本有关。
标签: java java-8 openshift java-11