我正在使用Spring MVC为一个服务开发简单的REST接口。
当其中一个方法返回对象的xml表示时,我决定使用JAXB
将我的类映射到xml文件。
我注释了我的类,但我发现为了进行任何验证,我需要将模式传递给我的marshaller对象。
由于我们正在使用maven
进行构建,因此我向JAXB
添加了pom.xml
插件。我可以看到架构文件是在构建阶段生成的,但现在我在运行时读取它们时遇到了问题。
因为我计划在我的应用程序中只有一个控制器,所以我想在Spring Framework创建控制器时加载模式文件。
我尝试使用context.getResourceAsStream("schema.xsd");
,但没有运气,我获得null
返回值。
我的架构文件正在部署到
<outputDirectory>${project.build.directory}/Open311/WEB-INF/classes</outputDirectory>
Spring框架是否提供了在启动时读取某些静态文件的任何替代方法,以便我可以从我的代码以某种方式访问它们?
另外我想要注意的是,我从eclipse级服务器视图部署到Tomcat
,也许这也很重要。
答案 0 :(得分:0)
看到这个问题:
Spring 3.0 inject files as resources
还有这一个:
Inject a file resource into Spring bean
描述了如何注入Resource
。
如果不起作用,请打开Eclpse的Navigator视图,并确保XSD文件实际位于classes目录中。如果没有,您可能需要进行clean
构建。