java.lang.IllegalArgumentException:组件netty不是RestConsumerFactory

问题描述 投票:0回答:1

我正在尝试使用netty组件,但我遇到了以下错误。我也尝试了jeety。但它不起作用。我使用camel 3.21.0,java版本是17。任何帮助都是有用的。

   RestConfigurationDefinition restDefinition = restConfiguration()
            .endpointProperty("maxThreads", "#maxThreads")
            .endpointProperty("minThreads", "#minThreads")
            .endpointProperty("requestBufferSize", "#requestBufferSize") 
            .endpointProperty("responseBufferSize", "#responseBufferSize") 
            .endpointProperty("requestHeaderSize", "#requestHeaderSize") 
            .endpointProperty("useXForwardedForHeader", "#useXForwardedForHeader")
            .endpointProperty("matchOnUriPrefix", "#matchOnUriPrefix")
            .endpointProperty("bridgeErrorHandler", "true")
            .endpointProperty("sendServerVersion", "false")
            .endpointProperty("socketConnectorProperties", "#socketConnectorProperties")
            .endpointProperty("secureSocketProtocol", "TLSv1.3")
            .endpointProperty("ssl","true")
            .endpointProperty("sslKeyPassword", "WalletPasswd123")
            .endpointProperty("sslPassword", "WalletPasswd123")
            .endpointProperty("sslContextParameters", "#sslContextParameters")
            .enableCORS(true)
            .corsHeaderProperty("Access-Control-Allow-Origin", "*")
            .bindingMode(endpointConfig.getRestBindingMode() != null ?
                    endpointConfig.getRestBindingMode() : RestBindingMode.off)
            .apiComponent("netty")
            .component("netty")
            .scheme("https")
            .host(endpointConfig.getHost())
            .port(endpointConfig.getPort());



Caused by: java.lang.IllegalArgumentException: Component netty is not a RestConsumerFactory
    at org.apache.camel.component.rest.RestEndpoint.createConsumer(RestEndpoint.java:482) ~[camel-rest-3.21.0.jar:3.21.0]
    at org.apache.camel.impl.engine.DefaultRoute.gatherRootServices(DefaultRoute.java:636) ~[camel-base-engine-3.21.0.jar:3.21.0]
    at org.apache.camel.impl.engine.DefaultRoute.gatherServices(DefaultRoute.java:620) ~[camel-base-engine-3.21.0.jar:3.21.0]
    at org.apache.camel.impl.engine.DefaultRoute.initializeServices(DefaultRoute.java:205) ~[camel-base-engine-3.21.0.jar:3.21.0]
    at org.apache.camel.impl.engine.RouteService.doSetup(RouteService.java:151) ~[camel-base-engine-3.21.0.jar:3.21.0]
    at org.apache.camel.impl.engine.RouteService.setUp(RouteService.java:130) ~[camel-base-engine-3.21.0.jar:3.21.0]

我希望使用 netty 在其余请求中启用 ssl。

https apache-camel netty java-17
1个回答
0
投票

netty是一个socket通信组件,REST需要使用netty-http组件。可能不需要 apiComponent,因为它的用途不同。

我可以看到您已经配置了一些特定于 jetty 的属性。您需要指定特定于 netty-http 组件的参数。您可以查看 Rest DSLNetty HTPPJetty 的文档以及 this 答案以获取更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.