当前位置: 首页 > 知识库问答 >
问题:

侦听器中的CXF获取对服务对象的引用

元俊雅
2023-03-14

我正在扩展AbstractPhaseInterceptor,我想在INVOKE或PRE_INVOKE阶段获得JAXWS Web服务对象。我该怎么做?

为了清楚起见,我需要获取对实现Web服务方法的对象的引用,因此:

@WebService(...)
public class ExampleWebService
{
   @WebMethod(...)
   public void doSomething(...)
   {
   }
}

public class MyInterceptor
    extends AbstractPhaseInterceptor<Message>
{
    public MyInterceptor()
    {
        super(Phase.INVOKE);
    }

    @Override
    public void handleMessage(Message message)
            throws Fault
    {
        ExampleWebService serviceObject = getServiceObject(message);
    }

    private static ExampleWebService getServiceObject(Message messsage)
    {
        // how do I implement this?
    }
}

共有1个答案

公西毅
2023-03-14

我不测试代码,但类似的东西可能会起作用。

import org.apache.cxf.endpoint.Server;
import org.apache.cxf.frontend.ServerFactoryBean;
...

Server server = serverFactoryBean.create();
MyInterceptor myInterceptor = new MyInterceptor(server.getEndpoint());
server.getEndpoint().getInInterceptor().add(myInterceptor);
 类似资料:
  • **服务器** **客户** 并且我运行它,ip是环回(127.0.0.1),端口是7755。 客户端套接字的对等ip:127.0.0.1 客户端套接字的对等端口6311 -1 0 0 0 我的问题是,如果监听(服务器)套接字只处理客户端的连接,那么它的对等端不应该存在?那个错误的IP和端口是什么?只是垃圾值?

  • 我们有web服务(jaxws),它正在调用另一个web服务(aslo jaxws)。Jaxws客户端配置如下所示-- 正如您所看到的,我们有两个拦截器和一个故障侦听器。我们希望在这些拦截器、故障侦听器和web服务代码之间进行通信。正如SO线程中所述,我们使用cxf交换对象在web服务和拦截器之间进行通信。 我们的inFaultInterceptor代码如下所示-- } Web服务代码如下所示- 但

  • 我能否向社区咨询一下,听多个主题的最佳方式是什么,每个主题都包含一个不同类别的信息? 在过去的几天里,我一直在玩Spring Kafka。到目前为止我的思考过程:

  • 要运行Kafka,需要在文件。有两种设置我不理解。 有人可以解释侦听器和广告侦听器属性之间的区别吗? 留档说: 侦听器:套接字服务器侦听的地址。 和 advertised.listeners:主机名和端口代理将向生产者和消费者做广告。 我什么时候必须使用哪个设置?

  • 场景:Junit用于微服务,它侦听队列并在数据提取后发布到rabbitMQ中的exchange。 问题: RabbitListenerTestHarness正在单独为Rabbit Listener类创建模拟对象,正在为Listener自动连接组件实例化实际对象 我找不到手动向听众注入模拟豆的方法。这导致JUnit在JUnit执行期间将测试消息发布到微服务中配置的实际队列。 解决方法:使用rabbi

  • 我正在实现一个片段,该片段调用两个。