2016-03-24 16 views
0

SOAP isteklerini işlemek için SimpleWebServiceInboundGateway kullanıyorum.Yay entegrasyonunda Sabun başlığı nasıl alabilirim?

@Router(defaultOutputChannel = "unsupportedOperation", inputChannel = "wsRequestChannel") 
public String route(Message message) { 
    String soapAction = (String)message.getHeaders().get(WS_SOAP_ACTION); 
    ... 
} 

@Bean 
public SimpleWebServiceInboundGateway wsInboundGateway(){ 
    SimpleWebServiceInboundGateway simpleWebServiceInboundGateway = new SimpleWebServiceInboundGateway(); 
    simpleWebServiceInboundGateway.setRequestChannelName("wsRequestChannel"); 
    simpleWebServiceInboundGateway.setReplyChannelName("wsResponseChannel"); 
    simpleWebServiceInboundGateway.setErrorChannelName("wsErrorChannel"); 
    return simpleWebServiceInboundGateway; 
} 

gelen sabun zarf sabun üstbilgi içeriyor:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    <soapenv:Header> 
     <myAuth> 
     <username>user</username> 
     <password>pass</password> 
     </myAuth> 
    </soapenv:Header> 
    <soapenv:Body> 
    ... 

benim yönlendirici Mesaj nesnesi başlık verileri içeren değildir.İşte

benim kod parçasıdır. Kullanıcı adını ve şifreyi nasıl çıkarabilirim?

cevap

0

SOAP başlıklarını eşlemek için, ağ geçidine özelleştirilmiş bir DefaultSoapHeaderMapper eklemeniz gerekir; eşleştiriciyi, hangi üstbilgileri eşlemek istediğinizi söyleyerek özelleştirebilirsiniz ...

mapper.setRequestHeaderNames ("STANDARD_REQUEST_HEADERS", "myHeader");

Haritanın başlığı, başlığın kalifiye QName değeriyle eşleşmelidir. STANDARD_REQUEST_HEADERS (varsayılan) SoapAction'ı eşler.

Yanıt başlıkları için benzer bir eşleme var.

İlgili konular