Closed IonelDem closed 7 years ago
Hi,
Can you post your question to the vertx forum ? Not everyone in the community monitors GH repos.
Please add a bit more context as well (longer code snippet).
Thank you
2017-01-16 9:06 GMT+01:00 IonelDem notifications@github.com:
When using the HttpClientRequest like the following:
HttpClientRequest request = wsClient.request(HttpMethod.GET, url.getPath());
I have the following error:
SEVERE: Unhandled exception rx.exceptions.OnErrorNotImplementedException: port out of range:-1 at rx.internal.util.InternalObservableUtils$ ErrorNotImplementedAction.call(InternalObservableUtils.java:386) at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction. call(InternalObservableUtils.java:383) at rx.internal.util. ActionSubscriber.onError(ActionSubscriber.java:44) at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:152) at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115) at rx.internal.operators.OnSubscribeMap$MapSubscriber. onError(OnSubscribeMap.java:88) at rx.internal.operators. OnSubscribeMap$MapSubscriber.onError(OnSubscribeMap.java:88) at rx.Observable.unsafeSubscribe(Observable.java:10157) at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48) at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33) at rx.Observable.unsafeSubscribe(Observable.java:10150) at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48) at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33) at rx.Observable.subscribe(Observable.java:10246) at rx.Observable.subscribe(Observable.java:10213) at rx.Observable.subscribe(Observable.java:10018) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle. assessUrl(Criterion24Verticle.java:202) at com.amadeus.aqg.verticles. criteria.Criterion24Verticle.access$000(Criterion24Verticle.java:25) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle$ 1.call(Criterion24Verticle.java:120) at com.amadeus.aqg.verticles. criteria.Criterion24Verticle$1.call(Criterion24Verticle.java:115) at rx.Observable.subscribe(Observable.java:10246) at rx.Observable.subscribe(Observable.java:10213) at rx.Observable.subscribe(Observable.java:10018) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle. assess(Criterion24Verticle.java:44) at com.amadeus.aqg.verticles. criteria.Criterion24Verticle.lambda$null$1(Criterion24Verticle.java:105) at java.util.ArrayList.forEach(ArrayList.java:1249) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle. lambda$computeStatus$2(Criterion24Verticle.java:94) at java.util.ArrayList.forEach(ArrayList.java:1249) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle.computeStatus(Criterion24Verticle.java:92) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle. lambda$registerListeners$4(Criterion24Verticle.java:233) at io.vertx.rxjava.core.eventbus.EventBus$3.handle(EventBus.java:203) at io.vertx.rxjava.core.eventbus.EventBus$3.handle(EventBus.java:201) at io.vertx.core.eventbus.impl.HandlerRegistration.deliver(HandlerRegistration.java:212) at io.vertx.core.eventbus.impl.HandlerRegistration.handle(HandlerRegistration.java:191) at io.vertx.core.eventbus.impl.EventBusImpl.lambda$deliverToHandler$3(EventBusImpl.java:503) at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:316) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute( AbstractEventExecutor.java:163) at io.netty.util.concurrent. SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:418) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:440) at io.netty.util.concurrent.SingleThreadEventExecutor$5. run(SingleThreadEventExecutor.java:873) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalArgumentException: port out of range:-1 at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:143) at java.net.InetSocketAddress.createUnresolved(InetSocketAddress.java:254) at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:126) at io.vertx.core.net.impl.ChannelProvider.connect(ChannelProvider.java:37) at io.vertx.core.http.impl.ConnectionManager$ChannelConnector.connect(ConnectionManager.java:523) at io.vertx.core.http.impl.ConnectionManager$ConnQueue. createNewConnection(ConnectionManager.java:279) at io.vertx.core.http.impl.ConnectionManager$ConnQueue.getConnection(ConnectionManager.java:222) at io.vertx.core.http.impl.ConnectionManager.getConnectionForRequest(ConnectionManager.java:139) at io.vertx.core.http.impl.HttpClientImpl.getConnectionForRequest(HttpClientImpl.java:687) at io.vertx.core.http.impl.HttpClientRequestImpl.connect( HttpClientRequestImpl.java:614) at io.vertx.core.http.impl. HttpClientRequestImpl.write(HttpClientRequestImpl.java:738) at io.vertx.core.http.impl.HttpClientRequestImpl.end( HttpClientRequestImpl.java:334) at io.vertx.rxjava.core.http. HttpClientRequest.end(HttpClientRequest.java:345) at com.amadeus.aqg.utils.HttpUtils.openUrl(HttpUtils.java:94) at rx.internal.util.ScalarSynchronousObservable$3.call( ScalarSynchronousObservable.java:231) at rx.internal.util. ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:228) at rx.Observable.unsafeSubscribe(Observable.java:10150)
I saw that this issue has been solved in the v3.0.0 of vertx but it seems that it is still in place.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/vert-x3/issues/issues/230, or mute the thread https://github.com/notifications/unsubscribe-auth/ABblts_yxJVIxlPwz4UGKTaXe7yUayhVks5rSyUdgaJpZM4LkRf2 .
By the vertx forum, you mean the Vertx developers group ?
No, the Vert.x user group: https://groups.google.com/forum/?fromgroups#!forum/vertx
See http://vertx.io/community/
2017-01-16 11:20 GMT+01:00 IonelDem notifications@github.com:
By the vertx forum, you mean the Vertx developers group ?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/vert-x3/issues/issues/230#issuecomment-272823190, or mute the thread https://github.com/notifications/unsubscribe-auth/ABbltoCYpyO7rUiTInKzXnnDLJq1GxXmks5rS0RmgaJpZM4LkRf2 .
Thank you. I will update the group with my issue.
Best regards
@IonelDem how are you constructing your wsClient object? probably its missing the setDefaultPort property
edit: could you please post a reproducer to the vertx group? it will be easier to analyse with that
Hello @alexlehm
Here is the complete code i use. It is simple.
public static synchronized Observable<String> send(Vertx vertx, String requestUrl,
String login, String password) {
try {
URL url = new URL(requestUrl);
log.info("Sending HTTP Request to [{}]", url);
HttpClientOptions options = new HttpClientOptions();
options.setDefaultHost(url.getHost());
options.setDefaultPort(url.getPort());
HttpClient wsClient = vertx.createHttpClient(options);
final String authHash =
Base64.getEncoder().encodeToString(String.format("%s:%s", login, password).getBytes("UTF-8"));
HttpClientRequest request = wsClient.request(HttpMethod.GET, url.getPath());
request.putHeader(HttpHeaders.ACCEPT.toString(), "text/html");
request.putHeader(HttpHeaders.AUTHORIZATION.toString(), "Basic " + authHash);
UrlElement elements = new UrlElement(request);
return Observable.just(elements).flatMap(HttpUtils::openUrl).map((data) -> {
log.debug(data);
return data;
});
} catch (MalformedURLException e) {
log.error("Incorrect URL is spcified for HTTP request: [{}]", requestUrl, e);
return Observable.error(new WorkerException("Incorrect URL spcified for HTTP request"));
} catch (UnsupportedEncodingException e) {
log.error("An error occured while trying to encode login/password for Basic authentication", e);
return Observable.error(
new WorkerException("An error occured while trying to encode login/password for Basic authentication"));
}
}
static synchronized Observable<String> openUrl(UrlElement urlElements) {
ObservableHandler<HttpClientResponse> obs = RxHelper.observableHandler();
urlElements.request.handler(obs.toHandler()).end();
return obs.flatMap((res) -> {
ObservableHandler<Buffer> obs1 = RxHelper.observableHandler();
res.bodyHandler(obs1.toHandler());
return obs1.flatMap(data -> {
log.info("Data retrieved");
return Observable.just(data.toString());
});
});
}
The URL I want to reach is some time an HTTPS url or a simple HTTP in my intranet. In every url I have the same error as displayed above and below in my previous post.
rx.exceptions.OnErrorNotImplementedException: port out of range:-1
For example, the following URL won't work:
This one will work:
Probleme solved. Thank you all. See the group; https://groups.google.com/forum/?fromgroups=#!topic/vertx/HCILTON4HY0
When using the
HttpClientRequest
like the following:HttpClientRequest request = wsClient.request(HttpMethod.GET, url.getPath());
I have the following error:
SEVERE: Unhandled exception rx.exceptions.OnErrorNotImplementedException: port out of range:-1 at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386) at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383) at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44) at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:152) at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115) at rx.internal.operators.OnSubscribeMap$MapSubscriber.onError(OnSubscribeMap.java:88) at rx.internal.operators.OnSubscribeMap$MapSubscriber.onError(OnSubscribeMap.java:88) at rx.Observable.unsafeSubscribe(Observable.java:10157) at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48) at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33) at rx.Observable.unsafeSubscribe(Observable.java:10150) at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48) at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33) at rx.Observable.subscribe(Observable.java:10246) at rx.Observable.subscribe(Observable.java:10213) at rx.Observable.subscribe(Observable.java:10018) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle.assessUrl(Criterion24Verticle.java:202) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle.access$000(Criterion24Verticle.java:25) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle$1.call(Criterion24Verticle.java:120) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle$1.call(Criterion24Verticle.java:115) at rx.Observable.subscribe(Observable.java:10246) at rx.Observable.subscribe(Observable.java:10213) at rx.Observable.subscribe(Observable.java:10018) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle.assess(Criterion24Verticle.java:44) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle.lambda$null$1(Criterion24Verticle.java:105) at java.util.ArrayList.forEach(ArrayList.java:1249) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle.lambda$computeStatus$2(Criterion24Verticle.java:94) at java.util.ArrayList.forEach(ArrayList.java:1249) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle.computeStatus(Criterion24Verticle.java:92) at com.amadeus.aqg.verticles.criteria.Criterion24Verticle.lambda$registerListeners$4(Criterion24Verticle.java:233) at io.vertx.rxjava.core.eventbus.EventBus$3.handle(EventBus.java:203) at io.vertx.rxjava.core.eventbus.EventBus$3.handle(EventBus.java:201) at io.vertx.core.eventbus.impl.HandlerRegistration.deliver(HandlerRegistration.java:212) at io.vertx.core.eventbus.impl.HandlerRegistration.handle(HandlerRegistration.java:191) at io.vertx.core.eventbus.impl.EventBusImpl.lambda$deliverToHandler$3(EventBusImpl.java:503) at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:316) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:418) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:440) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalArgumentException: port out of range:-1 at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:143) at java.net.InetSocketAddress.createUnresolved(InetSocketAddress.java:254) at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:126) at io.vertx.core.net.impl.ChannelProvider.connect(ChannelProvider.java:37) at io.vertx.core.http.impl.ConnectionManager$ChannelConnector.connect(ConnectionManager.java:523) at io.vertx.core.http.impl.ConnectionManager$ConnQueue.createNewConnection(ConnectionManager.java:279) at io.vertx.core.http.impl.ConnectionManager$ConnQueue.getConnection(ConnectionManager.java:222) at io.vertx.core.http.impl.ConnectionManager.getConnectionForRequest(ConnectionManager.java:139) at io.vertx.core.http.impl.HttpClientImpl.getConnectionForRequest(HttpClientImpl.java:687) at io.vertx.core.http.impl.HttpClientRequestImpl.connect(HttpClientRequestImpl.java:614) at io.vertx.core.http.impl.HttpClientRequestImpl.write(HttpClientRequestImpl.java:738) at io.vertx.core.http.impl.HttpClientRequestImpl.end(HttpClientRequestImpl.java:334) at io.vertx.rxjava.core.http.HttpClientRequest.end(HttpClientRequest.java:345) at com.amadeus.aqg.utils.HttpUtils.openUrl(HttpUtils.java:94) at rx.internal.util.ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:231) at rx.internal.util.ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:228) at rx.Observable.unsafeSubscribe(Observable.java:10150)
I saw that this issue has been solved in the v3.0.0 of vertx but it seems that it is still in place.