<br><font size=2 face="Arial">I have had no problem using JDOM with Apache/AXIS although I do all my deployment through jws files. Note: I am trying to write services that the lowest common denominator (cf Visual Basic) can understand. Thus, for the most part, my interface is String in, String out where the strings are either just simple parameters or XML object trees represented as a string. (This may in fact be your problem: you don't want to send an Element across the wire but rather a String whose content is the XML for the Element.)</font>
<br>
<br><font size=2 face="Arial">I enclose the complete client super class which does the work. The encode methods take an appropriate Java class tree (all of whose members are subclasses of XMLType) and, using JDOM converts it to XML: see in particular </font><font size=2><tt>encodeAsString</tt></font><font size=2 face="Arial">. The analyze methods do the inverse: take an XML tree as represented by JDOM, parse it and return an object of type XMLType (which is probably a tree of objects of type XMLType).</font>
<br>
<br><font size=2 face="Arial">The method </font><font size=2><tt>getResponseFromServer</tt></font><font size=2 face="Arial"> does the actual transmission to the server.</font>
<br>
<br><font size=2 face="Arial">Hope this all helps.</font>
<br>
<br><font size=2><tt>package &nbsp;com.abbott.pprd.hts.sirna.xmlobjects;</tt></font>
<br>
<br><font size=2><tt>import java.io.*;</tt></font>
<br><font size=2><tt>import java.util.*;</tt></font>
<br><font size=2><tt>import java.lang.reflect.*;</tt></font>
<br><font size=2><tt>import org.jdom.*;</tt></font>
<br><font size=2><tt>import org.jdom.input.*;</tt></font>
<br><font size=2><tt>import org.jdom.output.*;</tt></font>
<br><font size=2><tt>import java.net.*;</tt></font>
<br><font size=2><tt>import org.apache.axis.client.Call;</tt></font>
<br><font size=2><tt>import org.apache.axis.client.Service;</tt></font>
<br>
<br>
<br><font size=2><tt>/**</tt></font>
<br><font size=2><tt>&nbsp;* The &lt;code&gt;XMLType&lt;/code&gt; class is an abstract base class</tt></font>
<br><font size=2><tt>&nbsp;* performing creation and manipulation of java classes from stringified XML sent from the axis/siRNA server.</tt></font>
<br><font size=2><tt>&nbsp;* @version &nbsp; &nbsp; 0.01; 1/28/04</tt></font>
<br><font size=2><tt>&nbsp;* @author &nbsp; &nbsp; &nbsp;C. Robinson</tt></font>
<br><font size=2><tt>&nbsp;*/</tt></font>
<br>
<br><font size=2><tt>&nbsp;abstract class XMLType {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font>
<br><font size=2><tt>&nbsp;/** The path of the objects from this package */</tt></font>
<br><font size=2><tt>&nbsp;static final String objectPath = &quot;xmlobjects.&quot;;</tt></font>
<br><font size=2><tt>&nbsp;/** A Log4J logging instance for this class &nbsp;*/</tt></font>
<br><font size=2><tt>&nbsp;static final org.apache.commons.logging.Log LOG = org.apache.commons.logging.LogFactory.getLog(XMLType.class);</tt></font>
<br><font size=2><tt>&nbsp;</tt></font>
<br><font size=2><tt>&nbsp;/** The URL of the SOAP service supplying the muscle &nbsp;*/</tt></font>
<br><font size=2><tt>&nbsp;static final String urlString = &quot;http://ppdapf07.northamerica.intra.abbott.com:8071/axis/SIRNARelationalService.jws&quot;;</tt></font>
<br>
<br><font size=2><tt>&nbsp;/** The XML attributes representing variable data for this class &nbsp;*/</tt></font>
<br><font size=2><tt>&nbsp;protected Hashtable attributes = new Hashtable();</tt></font>
<br><font size=2><tt>&nbsp;/** The children of this class if this is a standard container class &nbsp;*/</tt></font>
<br><font size=2><tt>&nbsp;protected ArrayList children = null;</tt></font>
<br>
<br><font size=2><tt>&nbsp; &nbsp; /**</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;* Generate an instance of the class represented by this XML element</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;*</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;* @param el an XML element</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;*</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;* @return an instantion of the class represented by the Element</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;*</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;*/</tt></font>
<br><font size=2><tt>&nbsp;public XMLType analyze(Element el) throws Exception,Throwable {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; analyzeAttributes(el);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; analyzeChildren(el);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; dirty = false;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return this;</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;/** Dirty is true if the object has been modified since fetch. Initialized to true. */</tt></font>
<br><font size=2><tt>&nbsp;boolean dirty = true;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; /**</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;* Return the state of dirtyness</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;*</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;* @return the dirtyness state</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;*</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp;*/</tt></font>
<br><font size=2><tt>&nbsp;public boolean isDirty() {return dirty;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;/**</tt></font>
<br><font size=2><tt>&nbsp; * Set the state of dirtyness</tt></font>
<br><font size=2><tt>&nbsp; *</tt></font>
<br><font size=2><tt>&nbsp; * @param x the dirtyness state</tt></font>
<br><font size=2><tt>&nbsp; *</tt></font>
<br><font size=2><tt>&nbsp; */</tt></font>
<br><font size=2><tt>&nbsp;public void setDirty(boolean x) {dirty = x;}</tt></font>
<br><font size=2><tt>&nbsp;/**</tt></font>
<br><font size=2><tt>&nbsp; * Get the attributes (name/value pairs)</tt></font>
<br><font size=2><tt>&nbsp; *</tt></font>
<br><font size=2><tt>&nbsp; * @return the Hashtable of attributes</tt></font>
<br><font size=2><tt>&nbsp; *</tt></font>
<br><font size=2><tt>&nbsp; */</tt></font>
<br>
<br><font size=2><tt>&nbsp;protected Hashtable getAttributes() {return attributes;}</tt></font>
<br><font size=2><tt>&nbsp;protected void setAttributes(Hashtable h) {attributes=h;}</tt></font>
<br><font size=2><tt>&nbsp;</tt></font>
<br><font size=2><tt>&nbsp;/**</tt></font>
<br><font size=2><tt>&nbsp; * Save an attribute in the set of attribute (remove same if null or &quot;&quot;)</tt></font>
<br><font size=2><tt>&nbsp; * set dirty = true if old attribute and the new one disaagree</tt></font>
<br><font size=2><tt>&nbsp; *</tt></font>
<br><font size=2><tt>&nbsp; * @param attri the name of the attribute to be set</tt></font>
<br><font size=2><tt>&nbsp; * @param value the value of the attribute to be set (null is represented by null or &quot;&quot;)</tt></font>
<br><font size=2><tt>&nbsp; *</tt></font>
<br><font size=2><tt>&nbsp; */</tt></font>
<br><font size=2><tt>&nbsp;public void putAttribute(String attri,String value) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;String x = getAttribute(attri);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (x==null) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((value == null) || value.equals(&quot;&quot;)) return;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else if (x.equals(value)) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((value == null) || value.equals(&quot;&quot;)) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;attributes.remove(attri);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;attributes.put(attri,value);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dirty = true;</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;public String getAttribute(String attri) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return (String)attributes.get(attri);</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br><font size=2><tt>&nbsp;</tt></font>
<br><font size=2><tt>&nbsp;public String encodeAsString() throws Exception {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; StringWriter sw = new StringWriter();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; Document outdoc = new Document(encode());</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; XMLOutputter outputter = new XMLOutputter(&quot;&quot;,true);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; outputter.setIndent(&quot; &quot;);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; outputter.output(outdoc, sw);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; return sw.toString(); &nbsp; &nbsp; &nbsp;</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br><font size=2><tt>&nbsp;</tt></font>
<br><font size=2><tt>&nbsp;protected Element encode() throws Exception {</tt></font>
<br><font size=2><tt>// &nbsp; &nbsp; &nbsp; &nbsp; LOG.info(&quot;encode &quot;+this.getClass().getName()); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;StringTokenizer st = new StringTokenizer(getClass().getName(),&quot;.&quot;);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;String lastName =&quot;?&quot;;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;while (st.hasMoreTokens()) lastName=st.nextToken();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Element el = new Element(lastName);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; encodeAttributes(el);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; encodeChildren(el);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; return el;</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br><font size=2><tt>&nbsp;</tt></font>
<br><font size=2><tt>&nbsp;protected void encodeAttributes(Element el) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (Iterator i = attributes.keySet().iterator();i.hasNext();) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;String a = (String)i.next();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;el.setAttribute(a,getAttribute(a));</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;protected void encodeChildren(Element el) &nbsp;throws Exception {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (children != null) for (Iterator i = children.iterator();i.hasNext();) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XMLType child = (XMLType)i.next();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;el.addContent(child.encode());</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;protected void analyzeAttributes(Element el) throws Exception {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;List t = el.getAttributes();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (Iterator i = t.iterator();i.hasNext();) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Attribute a = (Attribute)i.next();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;attributes.put(a.getName(),a.getValue());</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; }</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;protected void analyzeChildren(Element el) throws Exception, Throwable {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;children = new ArrayList(); // all of type XMLType</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; List t = el.getChildren();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (Iterator i = t.iterator();i.hasNext();) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Element e = (Element)i.next();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;String name = e.getName();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XMLType x = (XMLType)Class.forName(objectPath+e.getName()).newInstance();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; children.add(x.analyze(e));</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; }</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;public void putChild(XMLType x) throws Exception,Throwable {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (children==null) children = getChildren(); // in case we are only partially fetched</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;children.add(x);</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br><font size=2><tt>&nbsp;</tt></font>
<br><font size=2><tt>&nbsp;public ArrayList getChildren() throws Exception {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (children==null) children = new ArrayList(); // we have no current chilren --&gt; create a list for same</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return children;</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;protected static String getResponseFromServer(String meth, Object[] args) throws Exception {</tt></font>
<br><font size=2><tt>&nbsp;// &nbsp; &nbsp; &nbsp; &nbsp; LOG.info(&quot;Processing &quot;+meth); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; Call call = (Call)new Service().createCall();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; call.setOperationName(new javax.xml.namespace.QName(&quot;http://soapinterop.org/&quot;, meth));</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; call.setTargetEndpointAddress(new URL(urlString));</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; return (String)call.invoke(args);</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>&nbsp;protected static int getIntResponseFromServer(String meth, Object[] args) throws Exception {</tt></font>
<br><font size=2><tt>&nbsp;// &nbsp; &nbsp; &nbsp; &nbsp; LOG.info(&quot;Processing &quot;+meth); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; Call call = (Call)new Service().createCall();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; call.setOperationName(new javax.xml.namespace.QName(&quot;http://soapinterop.org/&quot;, meth));</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; call.setTargetEndpointAddress(new URL(urlString));</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; Integer i = (Integer)call.invoke(args);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; return i.intValue();</tt></font>
<br><font size=2><tt>&nbsp;}</tt></font>
<br>
<br><font size=2><tt>}</tt></font>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>jdom-interest-request@jdom.org</b></font>
<br><font size=1 face="sans-serif">Sent by: jdom-interest-admin@jdom.org</font>
<p><font size=1 face="sans-serif">04/14/2004 01:01 AM</font>
<br><font size=1 face="sans-serif">Please respond to jdom-interest</font>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; &nbsp; &nbsp; &nbsp;jdom-interest@jdom.org</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;jdom-interest digest, Vol 1 #1463 - 1 msg</font></table>
<br>
<br>
<br><font size=2 face="Courier New">Send jdom-interest mailing list submissions to<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jdom-interest@jdom.org<br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; http://lists.denveronline.net/mailman/listinfo/jdom-interest<br>
or, via email, send a message with subject or body 'help' to<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jdom-interest-request@jdom.org<br>
<br>
You can reach the person managing the list at<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jdom-interest-admin@jdom.org<br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of jdom-interest digest...&quot;<br>
<br>
<br>
Today's Topics:<br>
<br>
 &nbsp; 1. JDOM w/ Apache Axis (Jerry Jalenak)<br>
<br>
--__--__--<br>
<br>
Message: 1<br>
From: &quot;Jerry Jalenak&quot; &lt;Jerry.Jalenak@LABONE.com&gt;<br>
To: &quot;'jdom-interest@jdom.org'&quot; &lt;jdom-interest@jdom.org&gt;<br>
Date: Tue, 13 Apr 2004 11:25:14 -0500<br>
Subject: [jdom-interest] JDOM w/ Apache Axis<br>
<br>
Greetings All!<br>
<br>
I'm fairly new to using JDOM to generate XML, so bear with me. &nbsp;I'm in the<br>
processing of writing a web service using Apache Axis. &nbsp;As part of my<br>
'learning' process, I've been able to have a dotNet client hit my web<br>
service and retrieve a basic String, a basic JavaBean, and an Array object<br>
from the JavaBean. &nbsp;I'm now trying to generate a XML document using JDOM,<br>
and pass it back to the client. &nbsp;Here's my basic 'HelloWorld'<br>
implementation:<br>
<br>
package ws;<br>
<br>
import org.jdom.Element;<br>
<br>
/**<br>
 * @author jjalenak<br>
 *<br>
 */<br>
public class HelloWorldImpl implements HelloWorld<br>
{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* (non-Javadoc)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* @see ws.HelloWorld#hello()<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public Document hello() throws Exception<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Document _d = new Document();<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Element _e = new Element(&quot;root&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _e.setText(&quot;Hi There!&quot;);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_d.setRootElement(_e);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return _d;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* (non-Javadoc)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* @see ws.HelloWorld#goodbye()<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public Document goodbye() throws Exception<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Document _d = new Document();<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Element _e = new Element(&quot;root&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _e.setText(&quot;Good Bye!&quot;);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_d.setRootElement(_e);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return _d;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
}<br>
<br>
When I ran the WSDL2JAVA emitter, it created a 'Document' bean in my 'ws'<br>
package, and removed the import for the org.jdom.Document. &nbsp;The web service<br>
deploys on Tomcat (5.0.18) without any problems. &nbsp;When I try to call the web<br>
service from my test Java web app, I get the following exception:<br>
<br>
exception is (500)Internal Server Error<br>
AxisFault<br>
 faultCode: {http://xml.apache.org/axis/}HTTP<br>
 faultSubcode: <br>
 faultString: (500)Internal Server Error<br>
 faultActor: <br>
 faultNode: <br>
 faultDetail: <br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {}string: return code: &nbsp;500<br>
<br>
Digging into this, I found what I think is the 'true' problem :<br>
java.io.IOException: No serializer found for class org.jdom.Element in<br>
registry org.apache.axis.encoding.TypeMappingImpl@6c2308. &nbsp;It appears that<br>
although WSDL2JAVA converted the Document object to a proper bean, it didn't<br>
do the Element object. &nbsp;I not quite sure where to go from here, so if anyone<br>
has some guidance, I'd sure appreciate it. &nbsp;Better yet, if someone has a<br>
working example of an Axis-based webservice using JDOM that they can share,<br>
I'd also appreciate being able to get a look at it.<br>
<br>
Thanks!<br>
<br>
Jerry Jalenak<br>
Development Manager, Web Publishing<br>
LabOne, Inc.<br>
10101 Renner Blvd.<br>
Lenexa, KS &nbsp;66219<br>
(913) 577-1496<br>
<br>
jerry.jalenak@labone.com<br>
<br>
<br>
This transmission (and any information attached to it) may be confidential and<br>
is intended solely for the use of the individual or entity to which it is<br>
addressed. If you are not the intended recipient or the person responsible for<br>
delivering the transmission to the intended recipient, be advised that you<br>
have received this transmission in error and that any use, dissemination,<br>
forwarding, printing, or copying of this information is strictly prohibited.<br>
If you have received this transmission in error, please immediately notify<br>
LabOne at the following email address: securityincidentreporting@labone.com<br>
<br>
<br>
<br>
--__--__--<br>
<br>
_______________________________________________<br>
To control your jdom-interest membership:<br>
http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com<br>
<br>
End of jdom-interest Digest<br>
</font>
<br>
<br>