我正在开发一个带有maven,spring 2.5和其他一些技术的Web应用程序。 应用程序由3层dao服务和web组成,dao和服务打包为jar,用作我的Web应用程序的库,最后打包为耳朵,这是最终的结构。
myappp.ear
--mywebapp.war
--lib
--dao.jar
--service.jar
到目前为止,我已在views.xml文件中定义的Web层中部署了报告(.jasper)。现在我正在尝试将我的报告移至服务中。我遇到的问题是a无法加载我的报告。这是一个示例代码
public class myreportingservice{
private InputStream report;
@autowired
public void setReport(InputStream report){
this.report = report;
}
//THE CODE THAT EJECUTES THE REPORT.
}
这是发布配置的xml。
<beans xmlns .........
<bean id="formatoTiempoEnProcesos" class="java.io.FileInputStream">
<constructor-arg value="c:/evaluacionDeProveedores.jasper"> </constructor-arg>
</bean>
</beans>
正如你在* 构造函数arg * 中看到的那样,它写的是整个路径并且它很好,但是如果我想使用相对路径bean无法加载,我试过有了这个 “classpath:/reportes/evaluacionDeProveedores.jasper”和“/reportes/evaluacionDeProveedores.jasper”以及许多方法,但现在我只是得到错误。
希望有人可以帮助我。
答案 0 :(得分:2)
classpath:/relative/path
应解析为Resource
,因此请将您的bean字段从InputStream
更改为org.springframework.core.io.Resource
。然后,您可以在资源上调用.getInputStream()