В проекте 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) на путь к классам, который мне нужно использовать?