This week's giveaway is in the EJB and other Java EE Technologies forum.
We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line!
See this thread for details.
The moose likes Web Services and the fly likes Putting string in soap message Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "Putting string in soap message" Watch "Putting string in soap message" New topic
Author

Putting string in soap message

Prajatna Mahunta
Greenhorn

Joined: Sep 01, 2008
Posts: 25
How to put a string inside a soap message, which am sending.
Need to put a XML(which is in string format) inside the soap message.
Please suggest me how to put that string inside the soap message.


Prajatna Mahunta
Prajatna Mahunta
Greenhorn

Joined: Sep 01, 2008
Posts: 25
Let me tell you one thing...we are using Java, in WAS 5.1
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
Below is an example for reference.

Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2906
Originally posted by Prajatna Mahunta:
Need to put a XML(which is in string format) inside the soap message.


Let me tell you one thing...we are using Java, in WAS 5.1


I suspect that you are actually asking how to pass or return a string that contains XML with a JAX-RPC web method. Under JAX-RPC a parameter that contains plain XML has to be in a javax.xml.soap.SOAPElement - otherwise the code generator doesn't know that it has to publish it under the "xsd:any" XML Schema Type.

See also Xml document as a SOAP payload

To convert a string that contains XML to a javax.xml.soap.SOAPElement you can use something like the following:



"Don't succumb to the false authority of a tool or model. There is no substitute for thinking."
Andy Hunt, Pragmatic Thinking & Learning: Refactor Your Wetware p.41
Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2906
Originally posted by Prajatna Mahunta:
We generated the client class using WSAD Wizard for this WSDL file, and we found that we need to send our input xml as Parameter. Problem here is the Method is expecting complex type as parameter where as we are generating our input xml as String. here We cant cast String variable to ComplexType.


J2EE 1.4 is supposed to support "JAX-RPC Mapping Files" which describe the custom binding between WSDL and Java types. There may be a mechanism by which you can provide the Wizard with a mapping file so that you can coerce that particular XML type to a String or SOAPElement (xsd:any).

"JAX-RPC Mapping Files" are described in "7.3 JAX-RPC Mapping Deployment Descriptor" of JSR-000921 Implementing Enterprise Web Services 1.1

Ultimately it may be easier to "tweak" a local copy of the WSDL (replace the appropriate XML type with xsd:any or xsd:string in the affected message part) so that the generated Java method is more to your liking.

Another alternative is JiBX to define a mapping between your XML to the generated complex type.
[ November 20, 2008: Message edited by: Peer Reynders ]
vishnu viswanath
Greenhorn

Joined: Nov 03, 2011
Posts: 2
Hi Peer Reynders ,

Can you tell me how to add text with xml to SOAPHeader. Since the addDocument method is not there for SOAPHeader.

Thanks
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Putting string in soap message
 
Similar Threads
org.apache.soap.Envelope: How to read the returned envelope?
java.text.ParseException in Web service
get the value from JSON String(SOAP content)
SOAP message
Language issue