我正在ActiveMQ中运行Camel,试图连接到Azure服务总线队列,但org.apache.camel.component.azure.servicebus.ServiceBusConfiguration
似乎只接受connectionString
属性。遗憾的是,我没有也无法获得连接字符串。
我被分配了ClientID、Tenant ID和Secret。我不知道如何用我现有的基于xml的配置来实现这一点。我试图从我所拥有的细节中创建一个连接字符串,但我想这是不可能的。
<endpoint id="azureQueueEndpoint" uri="azureServiceBusComponent:iris.705d3ce1-xxxx-4fdf-acb3-xxxxxx" />
<route id="Elexon_IRIS_Route">
<from uri="azureQueueEndpoint" />
<to uri="localAMQ:topic:IRIS-Elexon"/>
</route>
<bean id="azureServiceBusComponent" class="org.apache.camel.component.azure.servicebus.ServiceBusComponent">
<property name="configuration">
<bean class="org.apache.camel.component.azure.servicebus.ServiceBusConfiguration">
<property name="connectionString" value="Endpoint=https://elexon-iris.servicebus.windows.net/iris.705d3ce1-xxxx-4fdf-acb3-xxxxxx;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=?????;EntityPath=iris.705d3ce1-xxxx-4fdf-acb3-xxxxxx" />
</bean>
</property>
</bean>
我不是很擅长Java,只能真正理解基于XML的配置。目前我在启动路由时得到以下错误;
WARN | {"az.sdk.message":"Non-retryable error occurred in AMQP receive link.","exception":"status-code: 401, status-description: InvalidSignature: The token has an invalid signature., errorContext[NAMESPACE: elexon-iris.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:receiver, LINK_CREDIT: 0]","linkName":"n/a","entityPath":"n/a"}
ERROR | Errors occurred upstream.
我正在尝试连接到ServiceBus并将消息提要桥接到ActiveMQ队列。正在使用来自Elexon-IRIS (free service)的数据
1条答案
按热度按时间w6mmgewl1#
不知何故,我已经能够解决连接问题。部分要感谢Chat-GPT提供了一个基于com.azure.identity jar源代码的示例。
我不会列出所有的dependent.jars,因为有很多...
在连接时,我现在得到一个有效令牌;
我现在有其他的问题;我与ASM软件包有冲突。Azure的东西需要
asm-1.0.2
,这似乎打破了嵌入式码头服务器;通过删除
asm-1.0.2.jar
和旧的json-smart.jar修复了此问题经纪人开始。最大的问题(另一篇文章)是我现在收到一条消息并试图将其发送到AMQ时可能会遇到的这个错误:
这是通过将
<convertBodyTo type="java.lang.String"/>
添加到路由中并转换为有效的JSON来修复的;