Re: Adding WS-Addressing From to SOAP header
I believe there's some JAXB annotations you can add (http://jaxb.java.net/guide/) to your Java mapping class to have Address map to Address (or, pumpkin, for that matter) instead of address. Part of the problem is that your POJO is not really a POJO (using proper camelCasing, shouldn't the String instance be called address to begin with?) Also, links #3 and #4 under Assorted Topics here: http://www.jroller.com/gmazza/entry/blog_article_index show how to add arbitrary headers to SOAP messages (in case the error is somehow not JAXB-related.) HTH, Glen On 10/18/2011 03:55 PM, Zoltan Sziladi wrote: Hello, I would like to request some help about how to add a From header to a SOAP message. I have created an interceptor inheriting from AbstractSoapInterceptor. In the handleMessage method I check if the message is outgoing, and if it is, I try to add a new header. In order to create the header, I have the following class: public class FromHeader { private String Address; public FromHeader() {} public void setAddress(String add) { this.Address = add; } public String getAddress() { return this.Address; } } To add the header in the handleMessage method, I use the following code: Header fromHeader = null; try { FromHeader fh = new FromHeader(); fh.setAddress(http://clienturi.org/sampleAddress;); fromHeader = new Header(new QName(http://www.w3.org/2005/08/addressing;, HI), fh, new JAXBDataBinding(FromHeader.class)); } catch (JAXBException ex) { Logger.getLogger(AddAddressInterceptor.class.getName()).log(Level.SEVERE, null, ex); } ListHeader soapHeaders = message.getHeaders(); soapHeaders.add(fromHeader); When this message arrives to the server, it does not arrive correctly, because the Address of the class FromHeader changes to address. Because of this, the message does not arrive, since the server send error code 400. Notice how I have HI for now as the second parameter of the Header. This is because it is supposed to be From, as I said, but then it does not even arrive to the server. I changed it to HI to at least see the result on server side. Apart from this, I think the message arrives correctly. So my question is, how can I make sure, that the Address property of my FromHeader class arrives as Address instead of address? (At least this is the only problem I can think of why it is not working). Thank you in advance for the help! Kind regards, Zoltán -- Glen Mazza Talend - http://www.talend.com/apache Blog - http://www.jroller.com/gmazza Twitter - glenmazza
Re: Adding WS-Addressing From to SOAP header
Hi! Thanks for the tip, the JAXB annotations helped! Yes, the property should be called address instead of Address, I just tried it capitalized to see if it changed the xml element name as well, but it did not. Anyway, I just had to add the @XmlElement to the getAddress method, and it works! Kind regards, Zoltán On Wed, Oct 19, 2011 at 6:17 PM, Glen Mazza gma...@talend.com wrote: I believe there's some JAXB annotations you can add ( http://jaxb.java.net/guide/) to your Java mapping class to have Address map to Address (or, pumpkin, for that matter) instead of address. Part of the problem is that your POJO is not really a POJO (using proper camelCasing, shouldn't the String instance be called address to begin with?) Also, links #3 and #4 under Assorted Topics here: http://www.jroller.com/gmazza/**entry/blog_article_indexhttp://www.jroller.com/gmazza/entry/blog_article_indexshow how to add arbitrary headers to SOAP messages (in case the error is somehow not JAXB-related.) HTH, Glen On 10/18/2011 03:55 PM, Zoltan Sziladi wrote: Hello, I would like to request some help about how to add a From header to a SOAP message. I have created an interceptor inheriting from AbstractSoapInterceptor. In the handleMessage method I check if the message is outgoing, and if it is, I try to add a new header. In order to create the header, I have the following class: public class FromHeader { private String Address; public FromHeader() {} public void setAddress(String add) { this.Address = add; } public String getAddress() { return this.Address; } } To add the header in the handleMessage method, I use the following code: Header fromHeader = null; try { FromHeader fh = new FromHeader(); fh.setAddress(http://**clienturi.org/sampleAddresshttp://clienturi.org/sampleAddress ); fromHeader = new Header(new QName(http://www.w3.org/2005/**08/addressinghttp://www.w3.org/2005/08/addressing , HI), fh, new JAXBDataBinding(FromHeader.**class)); } catch (JAXBException ex) { Logger.getLogger(**AddAddressInterceptor.class.** getName()).log(Level.SEVERE, null, ex); } ListHeader soapHeaders = message.getHeaders(); soapHeaders.add(fromHeader); When this message arrives to the server, it does not arrive correctly, because the Address of the class FromHeader changes to address. Because of this, the message does not arrive, since the server send error code 400. Notice how I have HI for now as the second parameter of the Header. This is because it is supposed to be From, as I said, but then it does not even arrive to the server. I changed it to HI to at least see the result on server side. Apart from this, I think the message arrives correctly. So my question is, how can I make sure, that the Address property of my FromHeader class arrives as Address instead of address? (At least this is the only problem I can think of why it is not working). Thank you in advance for the help! Kind regards, Zoltán -- Glen Mazza Talend - http://www.talend.com/apache Blog - http://www.jroller.com/gmazza Twitter - glenmazza
Adding WS-Addressing From to SOAP header
Hello, I would like to request some help about how to add a From header to a SOAP message. I have created an interceptor inheriting from AbstractSoapInterceptor. In the handleMessage method I check if the message is outgoing, and if it is, I try to add a new header. In order to create the header, I have the following class: public class FromHeader { private String Address; public FromHeader() {} public void setAddress(String add) { this.Address = add; } public String getAddress() { return this.Address; } } To add the header in the handleMessage method, I use the following code: Header fromHeader = null; try { FromHeader fh = new FromHeader(); fh.setAddress(http://clienturi.org/sampleAddress;); fromHeader = new Header(new QName(http://www.w3.org/2005/08/addressing;, HI), fh, new JAXBDataBinding(FromHeader.class)); } catch (JAXBException ex) { Logger.getLogger(AddAddressInterceptor.class.getName()).log(Level.SEVERE, null, ex); } ListHeader soapHeaders = message.getHeaders(); soapHeaders.add(fromHeader); When this message arrives to the server, it does not arrive correctly, because the Address of the class FromHeader changes to address. Because of this, the message does not arrive, since the server send error code 400. Notice how I have HI for now as the second parameter of the Header. This is because it is supposed to be From, as I said, but then it does not even arrive to the server. I changed it to HI to at least see the result on server side. Apart from this, I think the message arrives correctly. So my question is, how can I make sure, that the Address property of my FromHeader class arrives as Address instead of address? (At least this is the only problem I can think of why it is not working). Thank you in advance for the help! Kind regards, Zoltán