匹配的通配符是严格的,但找不到元素 'http:conduit' 的声明

The matching wildcard is strict, but no declaration can be found for element 'http:conduit'

基本上我想将 useHttpsURLConnectionDefaultSslSocketFactory(tlsClientParameters) 设置为 true 以使用 HttpsURLConnection.setDefaultSSLSocketFactory 传递自定义信任库管理器。

因此,我在 spring 上下文文件中进行了配置,配置如下: 它在标签 (http:conduit) 上显示文件本身的错误

beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:context="http://www.springframework.org/schema/context"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:task="http://www.springframework.org/schema/task"
             xmlns:cxf="http://cxf.apache.org/core"
             xmlns:http="http://cxf.apache.org/transports/http/configuration"
             xmlns:sec="http://cxf.apache.org/configuration/security"
             xmlns:jaxws="http://cxf.apache.org/jaxws"
             xmlns:jaxrs="http://cxf.apache.org/jaxrs"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                                 http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
                                 http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
                                 http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd
                                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                                 http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/wsdl/http-conf.xsd
                                 http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxs.xsd
                                 http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jars.xsd">

    <http:conduit name="*.http-conduit">
        <http:tlsClientParameters useHttpsURLConnectionDefaultSslSocketFactory="true" />
    </http:conduit>

</beans:beans>

但是在 wildfly-24 重启时,我收到了上述错误。

以下是 ant 文件中的依赖项:

<dependency org="org.apache.cxf" name="cxf-core" rev="${cxf.version}"><artifact name="cxf-core" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-bindings-soap" rev="${cxf.version}"><artifact name="cxf-rt-bindings-soap" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-databinding-jaxb" rev="${cxf.version}"><artifact name="cxf-rt-databinding-jaxb" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-frontend-jaxws" rev="${cxf.version}"><artifact name="cxf-rt-frontend-jaxws" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-frontend-jaxrs" rev="${cxf.version}"><artifact name="cxf-rt-frontend-jaxrs" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-frontend-simple" rev="${cxf.version}"><artifact name="cxf-rt-frontend-simple" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-transports-http" rev="${cxf.version}"><artifact name="cxf-rt-transports-http" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-wsdl" rev="${cxf.version}"><artifact name="cxf-rt-wsdl" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-ws-security" rev="${cxf.version}"><artifact name="cxf-rt-ws-security" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-security" rev="${cxf.version}"><artifact name="cxf-rt-security" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-tools-wsdlto-core" rev="${cxf.version}"><artifact name="cxf-tools-wsdlto-core" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-tools-wsdlto-frontend-jaxws" rev="${cxf.version}"><artifact name="cxf-tools-wsdlto-frontend-jaxws" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-bindings-xml" rev="${cxf.version}"><artifact name="cxf-tools-wsdlto-core" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-databinding-aegis" rev="${cxf.version}"><artifact name="cxf-rt-databinding-aegis" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-management" rev="${cxf.version}"><artifact name="cxf-rt-management" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-transports-local" rev="${cxf.version}"><artifact name="cxf-rt-transports-local" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-ws-addr" rev="${cxf.version}"><artifact name="cxf-rt-ws-addr" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-ws-rm" rev="${cxf.version}"><artifact name="cxf-rt-ws-rm" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-tools-common" rev="${cxf.version}"><artifact name="cxf-tools-common" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-databinding-jibx" rev="${cxf-jibx.version}"><artifact name="cxf-rt-databinding-jibx" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-rs-client" rev="${cxf.version}"><artifact name="cxf-rt-rs-client" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-rs-extension-providers" rev="${cxf.version}"><artifact name="cxf-rt-rs-extension-providers" ext="jar"/></dependency>
        <dependency org="org.apache.cxf" name="cxf-rt-ws-policy" rev="${cxf.version}"><artifact name="cxf-rt-ws-policy" ext="jar"/></dependency>

我想出的解决方法如下所述:

  1. 需要在ear(classpath)中添加cxf库,
  2. 需要在 spring 上下文文件中添加以下配置,名称为 space:
<http:conduit name="*.http-conduit">
        <http:tlsClientParameters useHttpsURLConnectionDefaultSslSocketFactory="true" />
</http:conduit>

并且不要忘记在同一个 spring 上下文文件中添加以下行(这是我所缺少的):

<beans:import resource="classpath:META-INF/cxf/cxf.xml"/>