我正在尝试编写一个java发布程序,以向事件中心发送一条消息。但是,当我尝试执行它时,我收到连接中止错误。我正在使用下面的链接(azure-eventhubs)和0.9.0版本中指定的maven依赖项下面是我试图遵循的链接和主要方法。
https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-java-ephcs-getstarted https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-java-ephcs-getstarted
public static void main(String[] args)
throws ServiceBusException, ExecutionException, InterruptedException, IOException {
final String namespaceName = "<namespace name>";
final String eventHubName = "<created with same name as namespace>";
final String sasKeyName = "RootManageSharedAccessKey";
final String sasKey = "<primary key from shared acccess policies>";
ConnectionStringBuilder connStr = new ConnectionStringBuilder(namespaceName, eventHubName, sasKeyName, sasKey);
byte[] payloadBytes = "Test AMQP message from JMS, Yaay it works".getBytes("UTF-8");
EventData sendEvent = new EventData(payloadBytes);
EventHubClient ehClient = EventHubClient.createFromConnectionStringSync(connStr.toString());
ehClient.sendSync(sendEvent);
}
这是我得到的错误的堆栈跟踪。任何帮助表示赞赏。
error[connection aborted]
Exception in thread "main" com.microsoft.azure.servicebus.ServiceBusException: connection aborted
at com.microsoft.azure.servicebus.ExceptionUtil.toException(ExceptionUtil.java:93)
at com.microsoft.azure.servicebus.MessagingFactory.onConnectionError(MessagingFactory.java:187)
at com.microsoft.azure.servicebus.amqp.ConnectionHandler.onTransportError(ConnectionHandler.java:105)
at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:191)
at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108)
at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:309)
at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:276)
at com.microsoft.azure.servicebus.MessagingFactory$RunReactor.run(MessagingFactory.java:340)
at java.lang.Thread.run(Thread.java:745)
是的,这肯定是防火墙问题,您需要使用以下代码来帮助您解决将数据写入 EventHub 时的连接问题。
希望这可以帮助!
final ConnectionStringBuilder connStr = new ConnectionStringBuilder()
.setNamespaceName("Your namespace name")
.setEventHubName("Your eventHub Name")
.setSasKeyName("Enter the SAS key name")
.setSasKey("SAS Key details");
connStr.setTransportType(TransportType.AMQP_WEB_SOCKETS);
ProxySelector.setDefault(new ProxySelector() {
@Override
public List<Proxy> select(URI uri) {
LinkedList<Proxy> proxies = new LinkedList<>();
proxies.add(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("proxy information" ,port)));
return proxies;
}
@Override
public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
// trace and follow up on why proxy server is down
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)