1 23 package com.sun.enterprise.jbi.serviceengine.bridge.transport; 24 25 import com.sun.enterprise.deployment.ServiceRefPortInfo; 26 import com.sun.enterprise.jbi.serviceengine.ServiceEngineException; 27 import com.sun.enterprise.jbi.serviceengine.util.soap.MessageExchangeHelper; 28 import javax.jbi.messaging.ExchangeStatus; 29 import javax.xml.soap.SOAPMessage ; 30 31 32 36 public class NMRClientConnection extends NMRConnection{ 37 38 private boolean oneWay; 40 private ServiceRefPortInfo portInfo; 41 42 private MessageExchangeHelper meHelper; 43 44 45 public NMRClientConnection(ServiceRefPortInfo portInfo, boolean oneWay) { 46 meHelper = new MessageExchangeHelper(); 47 setOneWay(oneWay); 49 setServicePortInfo(portInfo); 50 } 51 52 55 56 57 public void setOneWay(boolean oneWay) { 58 this.oneWay = oneWay; 59 } 60 61 public void setServicePortInfo(ServiceRefPortInfo portInfo) { 62 this.portInfo = portInfo; 63 } 64 65 public void closeOutput() { 66 try { 67 SOAPMessage incomingMessage = createSOAPMessageFromOutputStream(); 68 69 meHelper.initializeMessageExchange(portInfo, incomingMessage); 70 meHelper.normalizeMessage(incomingMessage, true); 71 meHelper.dispatchMessage(); 72 73 if(meHelper.isInOutMessageExchange()) { 74 handleResponse(); 75 } 76 } catch (Exception ex) { 77 ex.printStackTrace(); 78 throw new RuntimeException (ex); 79 } 80 } 81 82 public void handleResponse() 83 throws ServiceEngineException { 84 createSOAPMessageInputStream(meHelper.denormalizeMessage(false)); 85 86 try { 88 ExchangeStatus currentStatus = meHelper.getMessageExchange().getStatus(); 89 93 if(!ExchangeStatus.ERROR.equals(currentStatus)) { 94 meHelper.getMessageExchange().setStatus(ExchangeStatus.DONE); 95 meHelper.dispatchMessage(); 96 } 97 } catch(Exception e) { 98 throw new ServiceEngineException(e); 99 } 100 101 } 102 103 } 104 | Popular Tags |