Загрузите .jasper в сервисный слой с пружиной 2.5 - PullRequest
2 голосов
/ 26 апреля 2011

Я занимаюсь разработкой веб-приложения на основе Maven, Spring 2.5 и некоторых других технологий.Приложение, которое состоит из трехслойного сервиса дао и веб-интерфейса, дао и сервис упакованы в jar-файл и используются в качестве библиотек для моего веб-приложения, которое, наконец, упаковано как ухо. Это окончательная структура.

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

До сих пор я размещал отчеты (.jasper) в веб-слое, определенном в файле views.xml.Сейчас я пытаюсь перенести свои отчеты в службу.Проблемы, с которыми я столкнулся, заключается в том, что я не могу загрузить свои отчеты.это пример кода

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 * он написанвесь путь, и он прекрасно работает, но если я хочу использовать относительный путь, бин не может быть загружен, я попытался с помощью этих "classpath: /reportes/evaluacionDeProveedores.jasper" и "/reportes/evaluacionDeProveedores.jasper" и многих других.пути, но не сейчас, я просто получаю ошибки.

Надеюсь, кто-нибудь может мне помочь.

1 Ответ

2 голосов
/ 26 апреля 2011

classpath:/relative/path должно быть преобразовано в Resource, поэтому измените ваше поле bean-компонента с InputStream на org.springframework.core.io.Resource. Затем вы можете позвонить .getInputStream() на ресурс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...