cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen Mazza <gma...@talend.com>
Subject Re: Custom SOAP header
Date Thu, 29 Dec 2011 22:11:02 GMT
Have you confirmed, via Wireshark[1] or similar tool, that the service 
is indeed receiving the client message with those soap:header elements?  
I'm not sure if the client is actually sending what it claims to be 
sending.

In my JAX-WS handler tutorial[2] service-side SOAPHandler.java class 
(Step #5) I show a generic way of reading in SOAP header elements, you 
may wish to check if the element is readable that way.

Finally, if the SOAP header elements are defined in the WSDL:binding and 
not the wsdl:portType sections there are some possibilities[3] to 
simplify the way you can read in the header elements.

HTH,
Glen

[1] http://www.jroller.com/gmazza/entry/soap_calls_over_wireshark
[2] http://www.jroller.com/gmazza/entry/jaxws_handler_tutorial
[3] http://www.jroller.com/gmazza/entry/using_implicit_soap_headers_with

On 12/29/2011 10:51 AM, dkundo wrote:
> Hi,
>
> I'm having the following problem:
> The client (WCF/.NET) sends a custom soap header with some value but on the
> server side the header's value is null.
>
> This is the SOAP message sent by client:
>
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Header>
> *<CustomHeader xmlns="http://schemas.devleap.com/CustomHeader">
> <Key>3859e0ee-4036-4f90-b8e9-7eb016c77b37</Key>
> </CustomHeader>
> *</s:Header>
> <s:Body><login xmlns="http://ws.mycompany.com"
> xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><arg0
> xmlns="">A</arg0><arg1 xmlns="">123</arg1></login></s:Body></s:Envelope>
>
>
> The SoapMessage on the server looks like:
>
> this = {dleserver.SessionInterceptor@2947}
> message = {org.apache.cxf.binding.soap.SoapMessage@2954} size = 32
> [0] = {java.util.HashMap$Entry@4156} javax.xml.ws.wsdl.port ->
> {http://ws.mycompany.com}LoginSvcImplPort
> [1] = {java.util.HashMap$Entry@4165}
> org.apache.cxf.service.model.MessageInfo ->  [MessageInfo INPUT:
> {http://ws.mycompany.com}login]
> [2] = {java.util.HashMap$Entry@4174}
> org.apache.cxf.message.Message.PROTOCOL_HEADERS ->  {accept-encoding=[gzip,
> deflate], connection=[keep-alive], Content-Length=[387],
> content-type=[text/xml; charset=UTF-8], Expect=[100-continue],
> Host=[dkundo-tc:9005], MYHEAD...
> [3] = {java.util.HashMap$Entry@4183} HTTP_CONTEXT_MATCH_STRATEGY ->  stem
> [4] = {java.util.HashMap$Entry@4191} org.apache.cxf.request.url ->
> http://dkundo-tc:9005/LoginSvc
> [5] = {java.util.HashMap$Entry@4199} javax.xml.ws.wsdl.interface ->
> {http://ws.mycompany.com}LoginSvc
> [6] = {java.util.HashMap$Entry@4207} org.apache.cxf.request.uri ->  /LoginSvc
> [7] = {java.util.HashMap$Entry@4215} HTTP.REQUEST ->  (POST
> /LoginSvc)@1328597432 org.eclipse.jetty.server.Request@4f30c9b8
> [8] = {java.util.HashMap$Entry@4224}
> org.apache.cxf.transport.https.CertConstraints ->  null
> [9] = {java.util.HashMap$Entry@4231} HTTP.CONFIG ->  null
> [10] = {java.util.HashMap$Entry@4238} Accept ->  null
> [11] = {java.util.HashMap$Entry@4245} org.apache.cxf.headers.Header.list ->
> [org.apache.cxf.binding.soap.SoapHeader@20b8610d]
> key: java.lang.String =
> {java.lang.String@4247}"org.apache.cxf.headers.Header.list"
> value: java.util.ArrayList = {java.util.ArrayList@4251} size = 1
> *[0] = {org.apache.cxf.binding.soap.SoapHeader@4425}
> mustUnderstand = false
> actor = null
> dataBinding = null
> name =
> {javax.xml.namespace.QName@4426}"{http://schemas.devleap.com/CustomHeader}CustomHeader"
> namespaceURI =
> {java.lang.String@4434}"http://schemas.devleap.com/CustomHeader"
> localPart = {java.lang.String@4435}"CustomHeader"
> prefix = {java.lang.String@4436}""
> object =
> {com.sun.org.apache.xerces.internal.dom.ElementNSImpl@4427}"[CustomHeader:
> null]"
> namespaceURI =
> {java.lang.String@4434}"http://schemas.devleap.com/CustomHeader"
> localName = {java.lang.String@4435}"CustomHeader"
> type = null
> name = {java.lang.String@4435}"CustomHeader"
> attributes = {com.sun.org.apache.xerces.internal.dom.AttributeMap@4440}
> ownerDocument =
> {com.sun.org.apache.xerces.internal.dom.DocumentImpl@4441}"[#document:
> null]"
> firstChild =
> {com.sun.org.apache.xerces.internal.dom.ElementNSImpl@4442}"[Key: null]"
> fNodeListCache = null
> fBufferStr = null
> previousSibling =
> {com.sun.org.apache.xerces.internal.dom.ElementNSImpl@4427}"[CustomHeader:
> null]"
> nextSibling = null
> ownerNode =
> {com.sun.org.apache.xerces.internal.dom.ElementNSImpl@4443}"[s:Header:
> null]"
> flags = 24
> direction = {org.apache.cxf.headers.Header$Direction@4428}"DIRECTION_IN"
> *[12] = {java.util.HashMap$Entry@4254}
> org.apache.cxf.message.Message.BASE_PATH ->  /LoginSvc
> [13] = {java.util.HashMap$Entry@4262}
> org.apache.cxf.message.Message.PATH_INFO ->  /LoginSvc
> [14] = {java.util.HashMap$Entry@4270}
> org.apache.cxf.continuations.ContinuationProvider ->
> org.apache.cxf.transport.http_jetty.continuations.JettyContinuationProvider@37312d86
> [15] = {java.util.HashMap$Entry@4279} javax.xml.ws.wsdl.service ->
> {http://ws.mycompany.com}LoginSvcImplService
> [16] = {java.util.HashMap$Entry@4288}
> org.apache.cxf.message.Message.IN_INTERCEPTORS ->
> [org.apache.cxf.transport.https.CertConstraintsInterceptor@62f570b5]
> [17] = {java.util.HashMap$Entry@4297}
> org.apache.cxf.message.Message.ENCODING ->  UTF-8
> [18] = {java.util.HashMap$Entry@4305}
> org.apache.cxf.binding.soap.SoapVersion ->
> org.apache.cxf.binding.soap.Soap11@57a32cb5
> [19] = {java.util.HashMap$Entry@4314}
> org.apache.cxf.message.Message.QUERY_STRING ->  null
> [20] = {java.util.HashMap$Entry@4321} HTTP.RESPONSE ->  HTTP/1.1 200 \r\n\r\n
> [21] = {java.util.HashMap$Entry@4330}
> org.apache.cxf.security.SecurityContext ->
> org.apache.cxf.transport.http.AbstractHTTPDestination$2@5e41108b
> [22] = {java.util.HashMap$Entry@4339}
> org.apache.cxf.configuration.security.AuthorizationPolicy ->  null
> [23] = {java.util.HashMap$Entry@4346}
> org.apache.cxf.async.post.response.dispatch ->  true
> [24] = {java.util.HashMap$Entry@4355} org.apache.cxf.request.method ->  POST
> [25] = {java.util.HashMap$Entry@4363} javax.xml.ws.wsdl.operation ->
> {http://ws.mycompany.com}login
> [26] = {java.util.HashMap$Entry@4372} org.apache.cxf.transport.Destination
> ->  org.apache.cxf.transport.http_jetty.JettyHTTPDestination@87db50a
> [27] = {java.util.HashMap$Entry@4380}
> org.apache.cxf.message.MessageFIXED_PARAMETER_ORDER ->  false
> [28] = {java.util.HashMap$Entry@4389} javax.xml.ws.wsdl.description ->
> http://dkundo-tc:9005/LoginSvc?wsdl
> [29] = {java.util.HashMap$Entry@4398}
> org.apache.cxf.service.model.BindingMessageInfo ->
> org.apache.cxf.service.model.BindingMessageInfo@2cfb5baa
> [30] = {java.util.HashMap$Entry@4407} HTTP.CONTEXT ->
> ServletContext@o.e.j.s.h.ContextHandler{,null}
> [31] = {java.util.HashMap$Entry@4416} Content-Type ->  text/xml;
> charset=UTF-8
> serviceInterface =
> {javax.xml.namespace.QName@2955}"{http://ws.mycompany.com}LoginSvc"
>
> Any ideas why?
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/Custom-SOAP-header-tp5107937p5107937.html
> Sent from the cxf-user mailing list archive at Nabble.com.


-- 
Glen Mazza
Talend Community Coders
http://coders.talend.com
blog: http://www.jroller.com/gmazza


Mime
View raw message