我正在使用 Camel-CXF 从包中发布 Web 服务。我使用蓝图进行配置。我的理解是,这个CXF配置会在指定端口动态创建一个Jetty连接器,并在指定路径发布CXF servlet:
<cxf:cxfEndpoint id="myEndpoint" address="http://0.0.0.0:${endpoint.port}/${context}" serviceClass="...">
<cxf:properties>
<!-- ... -->
</cxf:properties>
</cxf:cxfEndpoint>
这很好用。服务端点在指定的端口和路径上可用。
现在我想让原始的 WSDL 可用,由 Tomi Vanek 的wsdl-viewer样式表转换。我想出了如何使用 Pax Web 的 DefaultResourceMapping 使静态资源可用:
<bean id="resourceMapping" class="org.ops4j.pax.web.extender.whiteboard.runtime.DefaultResourceMapping">
<property name="alias" value="/wsdl" />
<property name="path" value="/wsdl/v4_0" />
</bean>
但是,这使得 WSDL 可以在端口 8181 中的默认 Jetty 连接器上访问。我不知道如何将资源映射器绑定到默认连接器以外的任何其他连接器。更具体地说,对于为 CXF 端点动态创建的连接器。