Java侦听器在出站调用时未收到相同的消息

Java侦听器在出站调用时未收到相同的消息,java,spring,interceptor,Java,Spring,Interceptor,我在回答上面有一个问题[这里][https://stackoverflow.com/a/12690600/11477095]. 我面临着类似的事情。我正在尝试按照建议添加拦截器[此处][https://stackoverflow.com/a/12690600/11477095]但这是行不通的。我的拦截器代码如下。我可以看到我正在添加的新值正在“入站”中的Exchange中添加,但当该消息到达服务器时,Exchange不同,我的意思是新的附加值被删除。看起来交换值被覆盖了,但在哪里 我的代码片段如

我在回答上面有一个问题[这里][https://stackoverflow.com/a/12690600/11477095]. 我面临着类似的事情。我正在尝试按照建议添加拦截器[此处][https://stackoverflow.com/a/12690600/11477095]但这是行不通的。我的拦截器代码如下。我可以看到我正在添加的新值正在“入站”中的Exchange中添加,但当该消息到达服务器时,Exchange不同,我的意思是新的附加值被删除。看起来交换值被覆盖了,但在哪里

我的代码片段如下

public static int counter = 0;
    public UserContextInterceptor() {
        super(Phase.PRE_STREAM);

        addBefore(SoapPreProtocolOutInterceptor.class.getName());
        //addAfter(EndpointSelectionInterceptor.class.getName());
    }
public void handleMessage(Message message) {
        //TODO

        boolean isOutbound = false;
        isOutbound = message == message.getExchange().getOutMessage()
            || message == message.getExchange().getOutFaultMessage();

        if (isOutbound) {
            System.out.println("\n******** Exchange is "+ message.getExchange());
            Counter resultCounter = message.getExchange().get(Counter.class);

            System.out.println("\n******** Counter is "+ resultCounter);
        } else {
            counter++;

            Counter newset = new Counter();
            newset.setCounter(counter);
            message.getExchange().put(Counter.class, newset);

            Counter resultCounter = message.getExchange().get(Counter.class);

            System.out.println("\n******** resultCounter is "+ resultCounter.getCounter());
            System.out.println("\n******** GetExchange is "+ message.getExchange());
            
        }
    }
在出站消息中,我得到计数器类的空指针。class只包含计数器变量int的getter和setter方法