0

I'm trying to get started with Pulsar (source: https://pulsar.apache.org/docs/en/client-libraries-java/) in Intellij IDEA, but I'm facing with a problem: I can not create a producer because of client uses port. I supose that the mistake is very simple and stupid, but can not find the reason)

an exception occurred: 
closing client: org.apache.pulsar.client.impl.PulsarClientImpl@6107227e
org.apache.pulsar.client.api.PulsarClientException: java.util.concurrent.ExecutionException: org.apache.pulsar.client.api.PulsarClientException: java.util.concurrent.CompletionException: org.apache.pulsar.shade.io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:6650
    at org.apache.pulsar.client.api.PulsarClientException.unwrap(PulsarClientException.java:978)
    at org.apache.pulsar.client.impl.ProducerBuilderImpl.create(ProducerBuilderImpl.java:94)
    at BrokerStarter.main(BrokerStarter.java:20)
Caused by: java.util.concurrent.ExecutionException: org.apache.pulsar.client.api.PulsarClientException: java.util.concurrent.CompletionException: org.apache.pulsar.shade.io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:6650
    at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
    at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
    at org.apache.pulsar.client.impl.ProducerBuilderImpl.create(ProducerBuilderImpl.java:92)
    ... 1 more
Caused by: org.apache.pulsar.client.api.PulsarClientException: java.util.concurrent.CompletionException: org.apache.pulsar.shade.io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:6650
    at org.apache.pulsar.client.impl.ConnectionPool.lambda$null$9(ConnectionPool.java:217)
    at org.apache.pulsar.shade.io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
    at org.apache.pulsar.shade.io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
    at org.apache.pulsar.shade.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384)
    at org.apache.pulsar.shade.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    at org.apache.pulsar.shade.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at org.apache.pulsar.shade.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.CompletionException: org.apache.pulsar.shade.io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:6650
    at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
    at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
    at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:661)
    at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:646)
    at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
    at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990)
    at org.apache.pulsar.common.util.netty.ChannelFutures.lambda$toCompletableFuture$0(ChannelFutures.java:59)
    at org.apache.pulsar.shade.io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577)
    at org.apache.pulsar.shade.io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:570)
    at org.apache.pulsar.shade.io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:549)
    at org.apache.pulsar.shade.io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490)
    at org.apache.pulsar.shade.io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:615)
    at org.apache.pulsar.shade.io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:608)
    at org.apache.pulsar.shade.io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117)
    at org.apache.pulsar.shade.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.fulfillConnectPromise(AbstractEpollChannel.java:636)
    at org.apache.pulsar.shade.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:655)
    at org.apache.pulsar.shade.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:529)
    at org.apache.pulsar.shade.io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:465)
    at org.apache.pulsar.shade.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
    ... 4 more
Caused by: org.apache.pulsar.shade.io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:6650
Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
    at org.apache.pulsar.shade.io.netty.channel.unix.Errors.throwConnectException(Errors.java:124)
    at org.apache.pulsar.shade.io.netty.channel.unix.Socket.finishConnect(Socket.java:243)
    at org.apache.pulsar.shade.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.doFinishConnect(AbstractEpollChannel.java:672)
    at org.apache.pulsar.shade.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:649)
    at org.apache.pulsar.shade.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:529)
    at org.apache.pulsar.shade.io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:465)
    at org.apache.pulsar.shade.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
    at org.apache.pulsar.shade.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    at org.apache.pulsar.shade.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at org.apache.pulsar.shade.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)

my code is:

public static void main(String[] args) throws PulsarClientException {
    PulsarClient client = null;
    Producer<byte[]> producer = null;

    try {
       client = PulsarClient.builder()
            .serviceUrl("pulsar://localhost:6650")
            .build();

       producer = client.newProducer()
            .topic("my-topic")
            .create();

       producer.send("My message".getBytes());
    } catch (Exception e) {
       System.out.println("an exception occurred: ");
       e.printStackTrace();
    } finally {
       if (producer != null) {
           System.out.println("closing producer: " + producer);
           producer.close();
       }
       if (client != null) {
            System.out.println("closing client: " + client);
            client.close();
        }
    }
}

build.gradle file:

plugins {
    id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

def pulsarVersion = '2.7.1'

dependencies {
    compile group: 'org.apache.pulsar', name: 'pulsar-client', version: pulsarVersion
    compile 'org.slf4j:slf4j-nop:1.7.13'
}

Thank you for any advice.

  • Are you by any chance already using that port in another process? I would suggest that you try to create a new client with another port 6651 for example and verify if you are able to do it – notihs May 17 '21 at 15:45
  • @notihs I tried with `"pulsar://localhost:6651"` but the result is the same. Also I checked my ports (Linux Mint 20) with: `sudo lsof -i:6650` and `sudo lsof -i:6651` - in both cases the result is empty. – notAprofessional May 17 '21 at 16:03
  • one more interesting thing: I checked port of client after criateion of `Pulsavr client` and before creation `Pulsar Producer` with `sudo lsof -i:6651` the result is still empty – notAprofessional May 17 '21 at 16:06
  • i reproduced what you are saying. can you confirm that this only occurs after some time? This probably is related to some kind of timeout – notihs May 17 '21 at 16:26
  • @notihs I do not set any timeout, but at the beginning of the execution intellij IDEA builds an artifact. It takes some time and i do not really know what exactly is going on because thera are not any logs =)... – notAprofessional May 18 '21 at 13:27
  • I checked out: a producer is created within 30 seconds, after that I get the error – notAprofessional May 19 '21 at 16:05
  • did you find the problem ? I have the same – MychaL Jun 01 '21 at 08:00
  • @MychaL nope =) – notAprofessional Jun 02 '21 at 12:01
  • Did you check if Pulsar is well started ? I resolve my case. It was in tests and our pulsar was not started when a service try to create a producer. – MychaL Jun 03 '21 at 13:55

0 Answers0