java - 通用 CXF 服务器实现

标签 java spring cxf

我目前正在开发一个使用 Spring Boot 和 CXF 的项目。 我已经成功地为特定的 Web 服务(带有相关的 WSDL)创建了 SOAP 客户端和 SOAP 服务器。就像魅力一样。

现在我需要实现某种代理服务器,它只解释 SOAP header (安全性、自定义 header )并根据自定义 header 的内容将 SOAP 服务路由到不同的后端。

但我还没有找到一般处理服务调用的选项。所有在线解决方案都建议我在代理中拥有不同代理服务的所有 WSDL,并生成内部 cxf 模型。

有没有一种方法可以在没有 WSDL/内部模型的情况下完成此任务?还没找到解决办法。

我遵循的一种方法是实现自定义 CXF Implementor 并将其绑定(bind)到端点。

@Bean
public Endpoint endpoint()
{
        EndpointImpl endpoint = new EndpointImpl(springBus(), customImplementor);
        endpoint.publish("/proxy");

        return endpoint;
}

但是没有我可以扩展的实现者接口(interface)。

我想念这里吗? 您有什么建议?

最佳答案

听起来你是否需要处理程序...... 只需定义一个拦截器类,它们就会执行类似的操作。

@Bean
public Endpoint endpoint()
{
    InterceptorClass handler = context.getBean(InterceptorClass.class);
    EndpointImpl endpoint = new EndpointImpl(springBus(), customImplementor);
    endpoint.setHandlers(Arrays.asList(handler));
    endpoint.publish("/proxy");

    return endpoint;
}

在此处查看示例 Oracle Doc如何创建拦截器类。

关于java - 通用 CXF 服务器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49747084/

相关文章:

Spring Boot Java Config 设置 session 超时

spring - 使用 Spring 运行测试。 --> java.lang.IllegalStateException : Failed to load ApplicationContext

java - 从 org.apache.camel.Exchange 获取 SOAPMessage

java - Java 中使用 lambda 和 Callable 的数独多线程

java - 复合组件的 Android View 持有者

java - tomcat servlet 容器的功能

java - HikariCP + Hibernate + MySql : warnings even when defining correct 'driverClassName' property

java - 使用 CXF 生成的客户端在 weblogic 12c 中使用 Web 服务时出现 SSL 异常

java - CXF 在单元测试中因 IncompatibleClassChangeError 异常而失败

java - 显示图像的 RGB 编号