【问题标题】:Load .jasper in the service layer with spring 2.5使用spring 2.5在服务层加载.jasper
【发布时间】:2011-04-26 20:26:22
【问题描述】:

我正在使用 maven、spring 2.5 和其他一些技术开发一个 Web 应用程序。 该应用由 3 层 dao 服务和 web 组成,dao 和服务被打包为 jar 并用作我的 web 应用程序的库,最后打包为一个耳朵这是最终的结构。

   myappp.ear 
       --mywebapp.war
         --lib
            --dao.jar
            --service.jar

到目前为止,我已经在 views.xml 文件中定义的 Web 层中部署了报告 (.jasper)。现在我正在尝试将我的报告移动到服务中。我面临的问题是无法加载我的报告。这是一个示例代码

public class myreportingservice{
      private InputStream report;

      @autowired
      public void setReport(InputStream report){
            this.report = report;
      }
    //THE CODE THAT EJECUTES THE REPORT.

}

这是 loas 配置的 xml。

<beans xmlns .........

     <bean id="formatoTiempoEnProcesos" class="java.io.FileInputStream">
    <constructor-arg value="c:/evaluacionDeProveedores.jasper">     </constructor-arg>
     </bean>

</beans>

正如您在 *constructor arg * 中看到的那样,它写入了整个路径并且可以正常工作,但是如果我想使用无法加载 bean 的相对路径,我已经尝试过有了这个 “classpath:/reportes/evaluacionDeProveedores.jasper”和“/reportes/evaluacionDeProveedores.jasper”还有很多方法,但现在我只是得到错误。

希望有人可以帮助我。

【问题讨论】:

    标签: java spring jasper-reports


    【解决方案1】:

    classpath:/relative/path 应该被解析为 Resource,因此将 bean 字段从 InputStream 更改为 org.springframework.core.io.Resource。然后你可以在资源上调用.getInputStream()

    【讨论】:

    • 谢谢,它工作得很好。对于那些感兴趣的人来说,这是最终的配置。
    • arg>
    猜你喜欢
    • 1970-01-01
    • 2014-03-10
    • 2020-08-20
    • 2023-04-09
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多