简体   繁体   English

getClassLoader().getResourceAsStream(resource) 在 java 中返回 null 11

[英]getClassLoader().getResourceAsStream(resource) return null in java 11

I am migrating spring boot java project from openshift-jdk-8 to openshift-jdk-11.我正在将 spring 引导 java 项目从 openshift-jdk-8 迁移到 openshift-jdk-11。 In java-11 below line always returning null when project is deployed as docker image in openshift cloud environment.在下面的 java-11 中,当项目在 openshift 云环境中部署为 docker 映像时,总是返回 null。 The same code is working fine while running in windows/local environment.在 Windows/本地环境中运行时,相同的代码运行良好。

getClassLoader().getResourceAsStream("mapper/myfile.xml")

Loading the file from bean-io dependency从 bean-io 依赖加载文件

implementation("org.beanio:beanio:2.1.0")

I have file under below location inside this jar.我在此 jar 内的以下位置下有文件。

BOOT-INF
 --classes
    --mapper/myfile.xml

Getting below error低于错误

   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) [?:?]

Any suggestion to resolve this issue解决此问题的任何建议

You could try java.nio:你可以试试 java.nio:

new String(Files.readAllBytes(Paths.get(absoluteFilePath)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java jar getClass().getClassLoader().getResourceAsStream 返回空指针异常 - java jar getClass().getClassLoader().getResourceAsStream return nullpointerexception Java getClassLoader()。getResourceAsStream(文件名) - Java getClassLoader().getResourceAsStream(filename) getClass().getClassLoader().getResourceAsStream() 总是返回 null,资源在 application.jar 中 - getClass().getClassLoader().getResourceAsStream() always returns null, resource is in application.jar getClassLoader().getResourceAsStream() 在模块化 java 项目(openjdk 11)中不起作用? - getClassLoader().getResourceAsStream() not work in modular java project (openjdk 11)? getClass()。getClassLoader()。getResourceAsStream()正在缓存资源 - getClass().getClassLoader().getResourceAsStream() is caching the resource getClassLoader().getResourceAsStream() 如何在 Java 中工作 - How getClassLoader().getResourceAsStream() works in java this.getClass()。getClassLoader()。getResourceAsStream始终返回null - this.getClass().getClassLoader().getResourceAsStream always returning null class.getClassLoader getResourceasStream在jar中返回null - class.getClassLoader getResourceasStream returns null in jar Java OutputStream 等价于 getClass().getClassLoader().getResourceAsStream() - Java OutputStream equivalent to getClass().getClassLoader().getResourceAsStream() getClassLoader()。getResourceAsStream方法为具有“.LIB”扩展名的文件返回null - getClassLoader().getResourceAsStream method returns null for a file with “.LIB” extension
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM