You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Tadayoshi Sato (Jira)" <ji...@apache.org> on 2021/03/02 05:48:00 UTC
[jira] [Updated] (CAMEL-16280) NettyEndpointUriFactory#buildUri()
not compatible with Netty endpoint URL
[ https://issues.apache.org/jira/browse/CAMEL-16280?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tadayoshi Sato updated CAMEL-16280:
-----------------------------------
Description:
Run this jbang script:
{code:java}
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.apache.camel:camel-core-engine:3.8.0
//DEPS org.apache.camel:camel-main:3.8.0
//DEPS org.apache.camel:camel-stream:3.8.0
//DEPS org.apache.camel:camel-netty:3.8.0
//DEPS org.slf4j:slf4j-nop:1.7.25
import java.util.*;
import org.apache.camel.*;
import org.apache.camel.spi.*;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.main.Main;
import org.apache.camel.component.netty.*;
Main main = new Main();
main.configure().addRoutesBuilder(new RouteBuilder() {
@Override
public void configure() throws Exception {
EndpointUriFactory factory = getContext().adapt(ExtendedCamelContext.class).getEndpointUriFactory("netty");
Map<String, Object> config = Map.of(
"protocol", "tcp",
"host", "localhost",
"port", 9999
);
String uri = factory.buildUri("netty", config, false);
System.out.println("uri = " + uri);
from(uri).to("stream:out");
//from("netty:tcp://localhost:9999").to("stream:out"); // this is OK
}
});
main.run();
{code}
and you'll get the following error:
{code}
$ ./camel-netty.jsh
uri = netty:tcp:localhost:9999
Exception java.lang.IllegalArgumentException: hostname can't be null
at InetSocketAddress.checkHost (InetSocketAddress.java:149)
at InetSocketAddress.<init> (InetSocketAddress.java:216)
at SingleTCPNettyServerBootstrapFactory.startServerBootstrap (SingleTCPNettyServerBootstrapFactory.java:184)
at SingleTCPNettyServerBootstrapFactory.doStart (SingleTCPNettyServerBootstrapFactory.java:113)
at BaseService.start (BaseService.java:115)
at ServiceHelper.startService (ServiceHelper.java:84)
at NettyConsumer.doStart (NettyConsumer.java:75)
at BaseService.start (BaseService.java:115)
at AbstractCamelContext.startService (AbstractCamelContext.java:3446)
at InternalRouteStartupManager.doStartOrResumeRouteConsumers (InternalRouteStartupManager.java:401)
at InternalRouteStartupManager.doStartRouteConsumers (InternalRouteStartupManager.java:319)
at InternalRouteStartupManager.safelyStartRouteServices (InternalRouteStartupManager.java:213)
at InternalRouteStartupManager.doStartOrResumeRoutes (InternalRouteStartupManager.java:147)
at AbstractCamelContext.doStartCamel (AbstractCamelContext.java:3150)
at AbstractCamelContext.doStartContext (AbstractCamelContext.java:2846)
at AbstractCamelContext.doStart (AbstractCamelContext.java:2797)
at BaseService.start (BaseService.java:115)
at AbstractCamelContext.start (AbstractCamelContext.java:2492)
at Main.doStart (Main.java:116)
at BaseService.start (BaseService.java:115)
at MainSupport.run (MainSupport.java:68)
at (#9:1)
{code}
This issue is the root cause of this CKC issue:
https://github.com/apache/camel-kafka-connector/issues/924
was:
Run this jbang script:
{code:java}
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.apache.camel:camel-core-engine:3.8.0
//DEPS org.apache.camel:camel-main:3.8.0
//DEPS org.apache.camel:camel-stream:3.8.0
//DEPS org.apache.camel:camel-netty:3.8.0
//DEPS org.slf4j:slf4j-nop:1.7.25
import java.util.*;
import org.apache.camel.*;
import org.apache.camel.spi.*;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.main.Main;
import org.apache.camel.component.netty.*;
Main main = new Main();
main.configure().addRoutesBuilder(new RouteBuilder() {
@Override
public void configure() throws Exception {
EndpointUriFactory factory = getContext().adapt(ExtendedCamelContext.class).getEndpointUriFactory("netty");
Map<String, Object> config = Map.of(
"protocol", "tcp",
"host", "localhost",
"port", 9999
);
String uri = factory.buildUri("netty", config, false);
System.out.println("uri = " + uri);
from(uri).to("stream:out");
//from("netty:tcp://localhost:9999").to("stream:out");
}
});
main.run();
{code}
and you'll get the following error:
{code}
$ ./camel-netty.jsh
uri = netty:tcp:localhost:9999
Exception java.lang.IllegalArgumentException: hostname can't be null
at InetSocketAddress.checkHost (InetSocketAddress.java:149)
at InetSocketAddress.<init> (InetSocketAddress.java:216)
at SingleTCPNettyServerBootstrapFactory.startServerBootstrap (SingleTCPNettyServerBootstrapFactory.java:184)
at SingleTCPNettyServerBootstrapFactory.doStart (SingleTCPNettyServerBootstrapFactory.java:113)
at BaseService.start (BaseService.java:115)
at ServiceHelper.startService (ServiceHelper.java:84)
at NettyConsumer.doStart (NettyConsumer.java:75)
at BaseService.start (BaseService.java:115)
at AbstractCamelContext.startService (AbstractCamelContext.java:3446)
at InternalRouteStartupManager.doStartOrResumeRouteConsumers (InternalRouteStartupManager.java:401)
at InternalRouteStartupManager.doStartRouteConsumers (InternalRouteStartupManager.java:319)
at InternalRouteStartupManager.safelyStartRouteServices (InternalRouteStartupManager.java:213)
at InternalRouteStartupManager.doStartOrResumeRoutes (InternalRouteStartupManager.java:147)
at AbstractCamelContext.doStartCamel (AbstractCamelContext.java:3150)
at AbstractCamelContext.doStartContext (AbstractCamelContext.java:2846)
at AbstractCamelContext.doStart (AbstractCamelContext.java:2797)
at BaseService.start (BaseService.java:115)
at AbstractCamelContext.start (AbstractCamelContext.java:2492)
at Main.doStart (Main.java:116)
at BaseService.start (BaseService.java:115)
at MainSupport.run (MainSupport.java:68)
at (#9:1)
{code}
This issue is the root cause of this CKC issue:
https://github.com/apache/camel-kafka-connector/issues/924
> NettyEndpointUriFactory#buildUri() not compatible with Netty endpoint URL
> -------------------------------------------------------------------------
>
> Key: CAMEL-16280
> URL: https://issues.apache.org/jira/browse/CAMEL-16280
> Project: Camel
> Issue Type: Bug
> Components: camel-netty
> Affects Versions: 3.8.0
> Reporter: Tadayoshi Sato
> Assignee: Tadayoshi Sato
> Priority: Major
> Attachments: camel-netty.jsh
>
>
> Run this jbang script:
> {code:java}
> ///usr/bin/env jbang "$0" "$@" ; exit $?
> //DEPS org.apache.camel:camel-core-engine:3.8.0
> //DEPS org.apache.camel:camel-main:3.8.0
> //DEPS org.apache.camel:camel-stream:3.8.0
> //DEPS org.apache.camel:camel-netty:3.8.0
> //DEPS org.slf4j:slf4j-nop:1.7.25
> import java.util.*;
> import org.apache.camel.*;
> import org.apache.camel.spi.*;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.main.Main;
> import org.apache.camel.component.netty.*;
> Main main = new Main();
> main.configure().addRoutesBuilder(new RouteBuilder() {
> @Override
> public void configure() throws Exception {
> EndpointUriFactory factory = getContext().adapt(ExtendedCamelContext.class).getEndpointUriFactory("netty");
> Map<String, Object> config = Map.of(
> "protocol", "tcp",
> "host", "localhost",
> "port", 9999
> );
> String uri = factory.buildUri("netty", config, false);
> System.out.println("uri = " + uri);
> from(uri).to("stream:out");
> //from("netty:tcp://localhost:9999").to("stream:out"); // this is OK
> }
> });
> main.run();
> {code}
> and you'll get the following error:
> {code}
> $ ./camel-netty.jsh
> uri = netty:tcp:localhost:9999
> Exception java.lang.IllegalArgumentException: hostname can't be null
> at InetSocketAddress.checkHost (InetSocketAddress.java:149)
> at InetSocketAddress.<init> (InetSocketAddress.java:216)
> at SingleTCPNettyServerBootstrapFactory.startServerBootstrap (SingleTCPNettyServerBootstrapFactory.java:184)
> at SingleTCPNettyServerBootstrapFactory.doStart (SingleTCPNettyServerBootstrapFactory.java:113)
> at BaseService.start (BaseService.java:115)
> at ServiceHelper.startService (ServiceHelper.java:84)
> at NettyConsumer.doStart (NettyConsumer.java:75)
> at BaseService.start (BaseService.java:115)
> at AbstractCamelContext.startService (AbstractCamelContext.java:3446)
> at InternalRouteStartupManager.doStartOrResumeRouteConsumers (InternalRouteStartupManager.java:401)
> at InternalRouteStartupManager.doStartRouteConsumers (InternalRouteStartupManager.java:319)
> at InternalRouteStartupManager.safelyStartRouteServices (InternalRouteStartupManager.java:213)
> at InternalRouteStartupManager.doStartOrResumeRoutes (InternalRouteStartupManager.java:147)
> at AbstractCamelContext.doStartCamel (AbstractCamelContext.java:3150)
> at AbstractCamelContext.doStartContext (AbstractCamelContext.java:2846)
> at AbstractCamelContext.doStart (AbstractCamelContext.java:2797)
> at BaseService.start (BaseService.java:115)
> at AbstractCamelContext.start (AbstractCamelContext.java:2492)
> at Main.doStart (Main.java:116)
> at BaseService.start (BaseService.java:115)
> at MainSupport.run (MainSupport.java:68)
> at (#9:1)
> {code}
> This issue is the root cause of this CKC issue:
> https://github.com/apache/camel-kafka-connector/issues/924
--
This message was sent by Atlassian Jira
(v8.3.4#803005)