<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
        <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
        <TITLE>Re: [jdom-interest] Issues with b7</TITLE>
        <META NAME="GENERATOR" CONTENT="StarOffice/5.2 (Win32)">
        <META NAME="CREATED" CONTENT="20010707;11371427">
        <META NAME="CHANGEDBY" CONTENT="Erik Nord">
        <META NAME="CHANGED" CONTENT="20010707;11384298">
</HEAD>
<BODY>
<PRE>Inside the *_BaseStub object there is a method matching the method that
you are calling.  In my case it is execute that takes in an Element. 
It is a w3c Element.  Then half way down is the following line of code:
in=(org.omg.CORBA_2_3.portable.InputStream)_invoke(out);  Inside this
_invoke(out) call a system exception is thrown.  Here is a copy of the
method that I am trying to eventually make it into:
public org.w3c.dom.Element execute(org.w3c.dom.Element element) {
    try {
            System.out.println(&quot;Inside execute()&quot;);
        org.jdom.input.DOMBuilder build = new
org.jdom.input.DOMBuilder();
        org.jdom.Element jElement = build.build(element);
        org.jdom.Document jdom = new org.jdom.Document(jElement);

        org.jdom.output.DOMOutputter out = new
org.jdom.output.DOMOutputter();
        jElement = jdom.getRootElement();
        System.out.println(&quot;Leaving execute()&quot;);
        return out.output(jElement);
    } catch (org.jdom.JDOMException jodme) {
        jodme.printStackTrace();
        return null;
    }
}

As you can see I am really doing nothing in this method as of yet. 
There will eventually be some business logic added to this method. 
Here is a copy of the Unit Test program that I wrote to test this
method:
protected void handleDo() {
    try {
            System.out.println(&quot;handleDo()&quot;);
        java.util.Properties p = new java.util.Properties();
        p.put(javax.naming.Context.PROVIDER_URL, &quot;iiop:///&quot;);
        p.put(
            javax.naming.Context.INITIAL_CONTEXT_FACTORY,
            &quot;com.ibm.ejs.ns.jndi.CNInitialContextFactory&quot;);
        javax.naming.InitialContext init = new
javax.naming.InitialContext(p);
        String jndiName =
           
csg.dispatcher.ejb.DispatcherSFB.class.getName().replace('.', '/');
        Object o = init.lookup(jndiName);
        System.out.println(&quot;Obtaining DispatcherSFB object.&quot;);
        csg.dispatcher.ejb.DispatcherSFBHome dispatcherHome =
            (csg.dispatcher.ejb.DispatcherSFBHome)
javax.rmi.PortableRemoteObject.narrow(
                o,
                csg.dispatcher.ejb.DispatcherSFBHome.class);
        csg.dispatcher.ejb.DispatcherSFB dispatcher =
dispatcherHome.create();
        String xmlString =
           
&quot;&lt;Transaction&gt;&lt;UserID&gt;Erik&lt;/UserID&gt;&lt;Password&gt;Nord&lt;/Password&gt;&lt;/Transaction&gt;&quot;;
        org.jdom.input.SAXBuilder sBuilder = new
org.jdom.input.SAXBuilder();
        org.jdom.Document jdom = sBuilder.build(new
java.io.StringReader(xmlString));
        org.jdom.output.DOMOutputter dOutput = new
org.jdom.output.DOMOutputter();
        org.w3c.dom.Document dom = dOutput.output(jdom);
        org.w3c.dom.Element pass = dom.getDocumentElement();
        //org.jdom.Element jdomElement =
dispatcher.execute(jdom.getRootElement());
        //org.w3c.dom.Document backDom = dispatcher.execute(dom);
        org.w3c.dom.Element element = dispatcher.execute(pass);
        org.jdom.input.DOMBuilder dBuilder = new
org.jdom.input.DOMBuilder();
        org.jdom.Element jElement = dBuilder.build(element);
        org.jdom.output.XMLOutputter xOutput = new
org.jdom.output.XMLOutputter();
        System.out.println(&quot;Back from Dispatcher:  &quot; +
xOutput.outputString(jElement));
    } catch (javax.naming.NamingException ne) {
        ne.printStackTrace();
    } catch (java.rmi.RemoteException re) {
        re.printStackTrace();
    } catch (javax.ejb.CreateException ce) {
        ce.printStackTrace();
    } catch (org.jdom.JDOMException jdome) {
        jdome.printStackTrace();
    }
}
So, this just creates the DOM and passes the Element.  It would then
get an Element back.  When I run this I get the following stack trace:
java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is: 
        org.omg.CORBA.MARSHAL:   
&Ecirc; 
 #  minor code: 0  completed: No
org.omg.CORBA.MARSHAL:   
&Ecirc; 
 #  minor code: 0  completed: No
        java.lang.Throwable(java.lang.String)
        java.lang.Exception(java.lang.String)
        java.lang.RuntimeException(java.lang.String)
        org.omg.CORBA.SystemException(java.lang.String, int,
org.omg.CORBA.CompletionStatus)
        org.omg.CORBA.MARSHAL(java.lang.String, int,
org.omg.CORBA.CompletionStatus)
        org.omg.CORBA.MARSHAL(java.lang.String)
        java.lang.Object
java.lang.reflect.Constructor.newInstance(java.lang.Object [])
        org.omg.CORBA.SystemException
com.ibm.CORBA.iiop.ReplyMessage.getSystemException()
        org.omg.CORBA.SystemException
com.ibm.rmi.iiop.ClientResponseImpl.getSystemException()
        org.omg.CORBA.portable.InputStream
com.ibm.CORBA.iiop.ClientDelegate.invoke(org.omg.CORBA.Object,
org.omg.CORBA.portable.OutputStream)
        org.omg.CORBA.portable.InputStream
org.omg.CORBA.portable.ObjectImpl._invoke(org.omg.CORBA.portable.OutputStream)
        org.w3c.dom.Element
csg.dispatcher.ejb._DispatcherSFB_BaseStub.execute(org.w3c.dom.Element)
        org.w3c.dom.Element
csg.dispatcher.ejb._DispatcherSFB_Stub.execute(org.w3c.dom.Element)
        void csg.dispatcher.test.DispatcherUT.handleDo()
        void csg.dispatcher.test.DispatcherUT.main(java.lang.String [])

I hope this helps you out.
Thank you
Erik Nord


&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Original Message &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;

On 7/6/01, 5:27:11 PM, Jason Hunter &lt;jhunter@collab.net&gt; wrote
regarding Re: [jdom-interest] Issues with b7:


&gt; You don't say what the problem is.  Just that things &quot;stopped
working&quot;.
&gt; If you could provide more details, we could be more help.

&gt; -jh-

&gt; &gt; Erik Nord wrote:
&gt; &gt;
&gt; &gt; I have just built a web architecture that is using JDOM
extensively.
&gt; &gt; When we were using the b6 release we were having no problems.  When
we
&gt; &gt; upgraded to the b7 our EJB's stopped working.  We all of the sudden
had
&gt; &gt; issues passing any kind of JDOM or W3C objects.  We eventually
tracked
&gt; &gt; this back to being an issue with the JDOM b7 release. We have since
&gt; &gt; went back to b6 and everything is working fine.  We wanted to use
the
&gt; &gt; detach() method in b7.  Has anyone seen this problem yet?
&gt; &gt; Thank you for you help.
&gt; &gt; Erik Nord
&gt; &gt; Senior Systems Programmer
&gt; &gt; CSG Systems, Inc.</PRE>
</BODY>
</HTML>