1.6. 已知的 Quarkus CXF 问题
CXF 被完全支持,但在这个 Red Hat build of Apache Camel for Quarkus 发行版本中保留以下问题。
1.6.1. 代码生成失败并显示使用 SmallRye Config SPI 的 in-app
smallrye Config 支持实施格式为 ${handler::value}
的自定义 secret 键表达式,其中处理程序是 io.smallrye.config.SecretKeysHandler
的名称,用于解码或解密由双冒号 ::
分隔的值。
如果在用户应用程序中实施 SecretKeysHandler
,那么如果启用了 wsdl2Java 代码生成,它会失败并显示类似如下的错误消息:
Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:3.8.0:generate-code (default) on project fallgruppenbestimmung: Quarkus code generation phase has failed: InvocationTargetException: io.smallrye.config.SecretKeysHandler: Provider org.acme.MySecretKeyHandler not found
1.6.2. 在一个 Java 软件包中名称相同的 Service 方法之间的名称冲突
如果一个 Java 软件包中有两个 SEI,则名称相同的 @WebMethod
,但不同的签名是生成的请求的默认名称,则对两个类的方法,响应和其他类都相同。
从 Quarkus CXF 3.8.3 开始,在构建时类生成过程中不会抛出异常。在运行时,只有一组这些类存在,因此对其中一个客户端的调用会不可避免地失败。
1.6.3. Bean 没有注入到服务实施中,@CXFEndpoint ("/my-path")
红帽构建的 Apache Camel for Quarkus 3.8.4.SP2 和 Quarkus CXF 3.8.4 中错误地引入了 @CXFEndpoint
注释。它在 Red Hat build of Apache Camel for Quarkus 3.8 和 Quarkus CXF 3.8.5 中被恢复。
注释允许您通过新注解 @CXFEndpoint ("/myPath")
指定 CXF 服务端点路径。
这不适用于具有 @WebService
和 @CXFEndpoint
注释的服务实施类。在这些情况下,如果服务有一些 @Inject
字段,这些字段将留空,服务调用会抛出 NullPointerException
。
没有 @CXFEndpoint
注释的服务实现不受影响。
我们建议您继续在 application.properties
中指定服务端点路径,如前面:
Example
quarkus.cxf.endpoint."/myPath".implementor = org.acme.MyServiceImpl