Hi all,
I need to get the equivalent of the SOAP MessageID with REST ws.
I have an interceptor that must register a message in a MAP and I have to
use the message urn as the unique message identifier.
How can I get it?
With SOAP technology I used an interceptor like this:

public class WSKPIMsgSizeInInterceptor extends AbstractLoggingInterceptor {
        ....
        
        public WSKPIMsgSizeInInterceptor() {
                super(Phase.RECEIVE);
        }
        
        
        public void handleMessage(Message message) throws Fault {
        .....
             //retrieve URN of the message (unique id)
             String msgUrn = getMessageId(message);
        .....
        }
        
        /**
         * This method is useful to try to get the Message ID from the message 
dom
Node.
         * @param message
         * @return the urn of the message
         */
        private String getMessageId(Message message){
                try{
                        //message.getContentFormats();
                        String urn = "";
                Document document = null;
                        if((InputStream)message.getContent(InputStream.class) 
!= null){
                                InputStream inputStream =
(InputStream)message.getContent(InputStream.class);     
                                
                                //do not change the input stream
                                CachedOutputStream bos = new 
CachedOutputStream();
                                IOUtils.copy(inputStream, bos);
                        bos.flush();
                        inputStream.close();
                        message.setContent(InputStream.class, 
bos.getInputStream());
                        
                    DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
                        dbf.setNamespaceAware(true);
                        DocumentBuilder builder = dbf.newDocumentBuilder();
                        document = builder.parse(bos.getInputStream());
                        
                        bos.close();
                        }
                        
                if(document!=null){
                        int i=0;
                    while (i < document.getChildNodes().getLength()) {
                        Node node = document.getChildNodes().item(i);
                        int j=0;
                        while (j < node.getChildNodes().getLength()) {
                                Node nodeF = node.getChildNodes().item(j);
                                int k=0;
                                while(k < nodeF.getChildNodes().getLength()){
                                        Node nodeFF = 
nodeF.getChildNodes().item(k); 
                                        
if(nodeFF.getNodeName().equals("MessageID")){
                                                urn = 
nodeFF.getChildNodes().item(0).getNodeValue();
                                        if(urn!=null)
                                                return urn;                     
                        
                                        }
                                        k++;
                                }
                                j++;
                        }
                        i++;
                    }
                }
                return "";
                }catch(Exception e){
                        log.error("Failed to get the MessageID (urn) from the 
mess header.",e);
                        return "";
                }
        }
        
}

In this way I was able to get the MessageID (the urn:..... of the Message).
But now that I use REST ws I arrive in the same interceptor with an
XMLMessage and I have two problems:
1. the operation to get the document from the message fails (how can I build
the document with REST?)
2. in general I'm not able to find in the XMLMessage a value that identifies
the message in any way (there is an identifier in the message?).

Bets regards,

Andrea



--
View this message in context: 
http://cxf.547215.n5.nabble.com/CXF-Rest-How-the-get-the-Message-Identifier-from-a-XMLMessage-tp5730734.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to