2017-02-13 3 views
0

Ich habe eine CXF "in Interceptor" gebunden an Empfangsphase, die Daten in Sitzung speichern.Wie bekomme ich die Sitzung von CXF-Interceptor

MyCxfInInterceptor (In Abfangjäger)

public class MyCxfInInterceptor extends AbstractSoapInterceptor { 
    public MyCxfInInterceptor() { 
     super(Phase.RECEIVE); 
    } 
    public void handleMessage(SoapMessage message) throws Fault { 
     HttpServletRequest request (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST); 
     HttpSession session = request.getSession(true); 

     session.setAttribute("foo","bar"); 
    } 
} 

MyCxfOutInterceptor (Out-Interceptor)

public class MyCxfOutInterceptor extends AbstractSoapInterceptor { 
     public MyCxfOutInterceptor() { 
     super(Phase.SEND); 
     } 


     public void handleMessage(SoapMessage message) throws Fault { 
     //TODO Retrieve data from session. 
     } 
    } 

ich Thesen Daten in mein "out-Interceptor" abrufen möchten. Wie kann ich es tun ?

Ich weiß nicht, wie Sie Sitzung von HttpServletResponse abrufen. Vielleicht ist die Sitzung nicht mehr verfügbar. Gibt es eine andere Möglichkeit, & Daten abzurufen?

Der Frühling könnte hilfreich sein?

Antwort

1

Sie können die Exchange verwenden, um die Daten zwischen und aus Interceptor

In Abfangjäger auszutauschen

public void handleMessage(SoapMessage message) throws Fault { 
    message.getExchange().put("foo","bar"); 
} 

Out Interceptor

public void handleMessage(SoapMessage message) throws Fault { 
    Object obj = message.getExchange().get("foo"); 
} 
Verwandte Themen