问题标签 [spring-camel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3053 浏览

spring-boot - 错误:org.apache.log4j.Logger 类型无法解析。它是从所需的 .class 文件中间接引用的

尝试将项目从使用 Camel v2.21.2 升级到使用 Camel v2.22.0

这需要从 Spring v4.x 到 v5.x 以及从 Spring-boot v1.5.x 到 Spring-boot v2.0.4.RELEASE。

项目使用 groovy-all 2.4.15。我们在项目中没有使用 log4j,我们在项目中使用 slf4j-api(1.7.25) 和 logback(1.2.3)。然而,运行 Maven 安装会给出一个错误,指出某些类正在使用 log4j

当我添加 log4j(1.2.17) 依赖项时,它工作正常,但我们不想添加它。

有什么东西可以从 spring-boot 启动器中排除吗?还有其他解决方案吗?关于如何诊断问题的任何提示?

0 投票
0 回答
625 浏览

spring - X-application-context-header 未传递给 openshift/liberty 中的 httpHeaders Map

我添加management.server.add-application-context-header=true到应用程序application.propertiesSpringboot(2.0.3.RELEASE)/spring(5.0.7.RELEASE)/camel(2.22.0)并部署到我的本地自由,当我进行示例休息调用并检查响应标头是否具有X-application-context-headerin 标头时。它确实有,但是当我在 HTTPHeaders中部署相同的应用程序时openshift/liberty,它没有被传递。X-application-context-header关于可能是什么原因的任何想法。

0 投票
1 回答
794 浏览

apache - UnmarshalException:骆驼肥皂解组错误意外元素

[com.sun.istack.SAXParseException2; 行号:1;列号:1;意外元素(uri:“ http://service.example.com/ ”,本地:“custDetails”)。预期的元素是 <{ http://schemas.xmlsoap.org/soap/envelope/ }Body>,<{}Customer>,<{ http://schemas.xmlsoap.org/soap/envelope/ }Envelope>,< { http://schemas.xmlsoap.org/soap/envelope/ }故障>,<{ http://schemas.xmlsoap.org/soap/envelope/ }Header>]

问题陈述:Camel 不希望收到 custDetails (webmethod) 和命名空间。
期望:使用 camel-soap 将有效负载解组为开箱即用的 soapJaxb。

  1. 使用 maven-jaxb2-plugin 为下面的 xsd 生成 JAXB 类。结果产生了三个带有注释的类——Customer.java、ObjectFactory、java、Order.java。

    /li>
  2. 使用 DataFormat 设置为 PAYLOAD 的 cxf 端点公开 webservice custDetails(..),如下所示。[使用@Configuration 更新]

    /li>
  3. Wsdl 生成并导入到soapUI。要测试的示例 SOAPUI 请求如下。

    /li>
  4. 当我尝试使用肥皂数据格式解组 PAYLOAD 时,骆驼抛出错误。这是命中命名空间错误。我不确定为什么没有生成 package-info 类。任何帮助是极大的赞赏。谢谢你。

  5. 更新,wsdl 给出如下。 <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://service.example.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="CustomerSvcService" targetNamespace="http://service.example.com/"> <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://service.example.com/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://service.example.com/"> <xs:element name="Customer"> <xs:complexType> <xs:sequence> <xs:element name="Id" type="xs:string"/> <xs:element name="Address" type="xs:string"/> <xs:element minOccurs="0" name="ListOfOrders" type="tns:order"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="order"> <xs:sequence> <xs:element name="Id" type="xs:string"/> <xs:element name="ProductName" type="xs:string"/> <xs:element minOccurs="0" name="ListOfDevice"> <xs:complexType> <xs:sequence> <xs:element name="DeviceName" type="xs:string"/> <xs:element name="ManufactureDate" type="xs:date"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="custDetails" type="tns:custDetails"/> <xs:complexType name="custDetails"> <xs:sequence> <xs:element minOccurs="0" ref="tns:Customer"/> </xs:sequence> </xs:complexType> <xs:element name="custDetailsResponse" type="tns:custDetailsResponse"/> <xs:complexType name="custDetailsResponse"> <xs:sequence> <xs:element minOccurs="0" ref="tns:Customer"/> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message name="custDetails"> <wsdl:part element="tns:custDetails" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="custDetailsResponse"> <wsdl:part element="tns:custDetailsResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:portType name="CustomerSvc"> <wsdl:operation name="custDetails"> <wsdl:input message="tns:custDetails" name="custDetails"> </wsdl:input> <wsdl:output message="tns:custDetailsResponse" name="custDetailsResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="CustomerSvcServiceSoapBinding" type="tns:CustomerSvc"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="custDetails"> <soap:operation soapAction="" style="document"/> <wsdl:input name="custDetails"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="custDetailsResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="CustomerSvcService"> <wsdl:port binding="tns:CustomerSvcServiceSoapBinding" name="CustomerSvcPort"> <soap:address location="http://localhost:12000/services/customerProvide"/> </wsdl:port> </wsdl:service> </wsdl:definitions>

0 投票
1 回答
235 浏览

apache-camel - 带有 Spring FileStateRepository 的 Camel kafka

我试图将Kafka偏移量保存到我使用Spring引导的文件中,似乎偏移量正在写入文件但没有读取,所以骆驼将在重启时从kafka主题的开头开始读取

0 投票
0 回答
1704 浏览

java - 使用模拟端点进行骆驼路线测试

使用 Springboot、Activemq 和模拟端点进行骆驼路线测试

我有一条骆驼路线,它从 activemq 中读取并传递给处理器,该处理器进行进一步的处理和业务逻辑。

我正在尝试通过 ProducerTemplate 生成和发送消息来进行测试,创建模拟端点“mock:result”并编织作为路由的最后一个节点并对其进行断言。它不满足断言。

骆驼路线:

测试类:

结果:

0 投票
1 回答
404 浏览

java - 路由中的apache骆驼多线程

我有这些路线:

休息服务端点:

上下文:主路由概览路由是从 ws REST 端点调用的。其他路由根据when子句调用。

我的前端并行多次调用主路由。

我所看到的:“选择”子句中定义的所有路由都是按顺序调用的(一旦前一个路由完成,就会调用下一个路由)。

我想要什么:我希望一旦调用了 ws 就必须调用在选择子句中定义的路由,而不是在前一次调用完成后调用。

我尝试过:Apache seda Spring Scope:@Scope(BeanDefinition.SCOPE_PROTOTYPE)

0 投票
1 回答
442 浏览

apache-camel - 从 Camel Rest 下载的文件为空

我试图让用户从我的骆驼应用程序中下载一个文本文件。问题是,文件包含 0 个字节(应该是 435b 并且在调试器中)。有人可以查看代码并提供建议吗?

我试图让用户从我的骆驼应用程序中下载一个文本文件。问题是,文件包含 0 个字节(应该是 435b 并且在调试器中)。有人可以查看代码并提供建议吗?

0 投票
1 回答
1565 浏览

apache-camel - 用于文件下载的骆驼休息 API

是否有任何骆驼restful Web服务示例提供文件下载,如下api

0 投票
0 回答
151 浏览

spring-boot - Camel rest API 提供动态下载

我们如何使用骆驼 API 提供文档下载,我需要使用骆驼休息提供一个 api 来将文件响应为下载,并且我有使用 apache fop 创建 pdf 的逻辑,但我需要获取一些如何响应文件的信息作为使用骆驼休息的休息反应。

0 投票
1 回答
614 浏览

java - 重新启动骆驼上下文时,Http连接池关闭

我已经使用组件camel-http4定义了带有路由的整个骆驼上下文。基本上,在上下文启动时,此路由每 5 分钟向外部服务器发出一个 http 请求。这非常完美。

在某些时候,我想重新启动骆驼上下文(使用 JMX),所以我只是这样做:

然后:

两个操作似乎都成功,日志确认实际停止和启动。但是当发出第一个 http 请求时,我收到以下错误:

看起来连接池处于无效状态。启动上下文时如何强制重新创建池?有没有其他方法可以避免这个错误?

版本: camel-http4 2.17 apache httpclient 4.5.2


我已经看到一些帖子说连接管理器必须通过使用(它更像是一种解决方法)HttpClientConfigurer 来共享。我定义并注入了我自己的客户端配置器,它不起作用: