'Connection aborted' error while trying to send events to Azure Event Hub using java EventHubClient API

佐手、 提交于 2019-12-12 03:05:53

问题


I am trying to write a java publisher program, to send a single message to event hub. but, when i try to execute it i get a connection aborted error. I am using maven dependency specified in below link(azure-eventhubs) and version of 0.9.0 Below is the link i am trying to follow and the main method .

https://docs.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);
}

Here is the stacktrace of the error i get. Any help is appreciated.

  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)

回答1:


Summarized for the above comments, it seems like a similar GitHub issue of Azure EventHub SDK for Java at the end of comment list of the issue page. However, per my experience, it seems that some firewall & anti-virus software prevent the amqp connection over SSL. And the fact as @Hemanthmeka said, the issue was caused by the firewall in his office.




回答2:


Yes, it's definitely a firewall issue, you will need to use the below code which would help you in solving the connection issue when writing the data to EventHub.

Hope this helps!

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
            }
        });


来源:https://stackoverflow.com/questions/40905400/connection-aborted-error-while-trying-to-send-events-to-azure-event-hub-using

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!