Spring启动嵌入式tomcat获取资源问题

时间:2016-02-22 17:50:48

标签: java maven tomcat jaxb spring-boot

我正在将我的项目作为Spring引导应用程序(主要用于嵌入式tomcat解决方案)从先前部署在tomcat上的WAR迁移。

所以我遇到嵌入式tomcat容器的问题,我希望有人可以提供解决方案,可能是通过spring或maven而不是修改我的项目用来解决这个问题的依赖jar。

我有两个包含xsd文件的数据模型jar,每个文件都有" /catalog/jaxb-catalog.xml"中的目录文件。我发现当我的一个图书馆打电话时:

Class loader = Thread.currentThread().getContextClassLoader();
URL url = loader.getResource("/catalog/jaxb-catalog.xml");

当我打印出" url"时,它只会有一个xml文件并忽略第二个xml文件。容器似乎是" TomcatEmbeddedWebappClassLoader"但是,当我的应用程序部署在一个独立的tomcat容器中时," url"将包括两者,容器为WebAppClassLoader

1 个答案:

答案 0 :(得分:1)

您可以使用名称阅读所有资源 org.springframework.core.io.support.PathMatchingResourcePatternResolver 它是一个普通的'java'类,所以你可以用new创建一个实例 找到所有资源使用 resolver.findResources( “类路径*:目录/ JAXB-的catalog.xml” 看一下PathMatchingResourcePatternResolver的javadoc,它包含了一些有价值的信息。