Blueprint / Spring не может найти ресурс 'classpath: path / to / file.ext', переместив проект из Talend 6.5.1 в 7.1.1 - PullRequest
0 голосов
/ 31 января 2019

В проекте Talend ESB (SE) у меня есть компонент, созданный в конфигурации "Spring" с использованием ресурса маршрута.

В версии 6.5.1 следующее (используется в качестве параметра) работает нормально.

<bean class="java.lang.String">
   <constructor-arg>
     <bean class="org.springframework.util.FileCopyUtils" factory-method="copyToByteArray" >
        <constructor-arg value="classpath:query/sqlQuery.sql" type="java.io.InputStream" />
     </bean>
   </constructor-arg>
</bean>

, но это не относится к моему проекту Talend 7.1.1.Кажется, не может найти ресурс.Я посмотрел в созданном файле .kar, а ресурс находится в проекте .jar в папке query.

[EDIT] Похоже, что Talend 7.1.1 заключает в себе "Spring"Конфигурация в элементе <blueprint>, который, возможно, изменил способ, которым это функционирует.

Я предполагаю, что что-то изменилось в том, как Talend упаковывает маршрут, или в способе интерпретации Spring xml.У Camel нет проблем с поиском ресурсов, например, from("sql:classpath:query/sqlQuery.sql"), но при поиске пути к классу Spring, похоже, не удается их найти.

Я пытался заменить classpath*: на прямой путь к классу в параметрекак это было предложено в некоторых ответах, которые я видел на вопросы «ресурс не найден», но это, по-видимому, неверно и интерпретировалось как простое имя файла.

Я что-то не так делаюс объявлением classpath?Есть ли другой способ установить свойство bean-компонента spring / blueprint с содержимым файла ресурса?

Я также пытался явно объявить bean-компонент ClassPathResource, и он утверждает, что ресурс не существует при использовании getInputStream()метод, несмотря на то, что я могу увидеть его, если открою содержащийся файл jar.

Повлияло ли обертывание созданной функции в терминах Maven (из Talend 7) на путь к классам, который мне нужно использовать?

...