ws-soap-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Nichol <snicholn...@scottnichol.com>
Subject RE: Serializer/deserializer problem.....
Date Fri, 13 Jun 2003 17:03:38 GMT
In your XML, both purchaseheader and purchaseorder are children of 
<SOAP-ENV:Body>, right?  This means the Vector returned by 
Body#getBodyElements has should have 2 elements, one for 
purchaseheader and one for purchaseorder.  Is that what you see?

BTW, is their a typo in the e-mail, specifically, is it 
purchaseheader instead of purcaseheader?  You don't have the same 
typo in your code somewhere, do you?

On 13 Jun 2003 at 15:10, Henk Schipper wrote:

> Scott and all the others who helped me,
> 
> I get the first element of the second part of the xml.... excually, it was
> very easy.... Thinking the impossible way results in impossible results.
> That's one thing I still get from time to time. Being pretty new to this is
> the guilty part for me...
> 
> I still have one challange.... The first part (purchaseheader) in the sample
> below.... How do I get that one.....
> Thanks in advance for your help....
> 
> Regards,
> 
> Henk.
> 
> -----Original Message-----
> From: Henk Schipper [mailto:hs@xs4all.nl]
> Sent: vrijdag 13 juni 2003 11:19
> To: soap-user@ws.apache.org
> Subject: RE: Serializer/deserializer problem.....
> 
> 
> Hi Scott,
> 
> Thanks for your reply... That helped a lot.
> Answering goes great!
> next lvl element... but one lvl deeper... i cannot retrieve the values.
> I have 1 body element in the 2nd part of the xml, but in the first part I
> got 3. That part I also do not see in the retrieval.
> 
> Its not completely like your example as this:
> <purchaseorder>
> 	<shipto>Me</shipto>
> 	<billto>You</billto>
> 	<items>art one</items>
> 	<comment>this is a test</comment>
> 	<orderdate>01012000</orderdate>
> </purchaseorder>
> 
> But more like this:
> <purcaseheader>
>     <from>
> 	<user>admin</user>
> 	<time>15:00:12</time>
> 	<date>31-12-1999</date>
>     </from>
>     <to>
> 	<user>client</user>
> 	<time>15:50:12</time>
> 	<date>31-12-1999</date>
>     </to>
>     <via>
> 	<user>interface</user>
> 	<time>15:40:12</time>
> 	<date>31-12-1999</date>
>     </via>
> </purcaseheader>
> <purchaseorder>
>     <details>
> 	<shipto>Me</shipto>
> 	<billto>You</billto>
> 	<items>art one</items>
> 	<comment>this is a test</comment>
> 	<orderdate>01012000</orderdate>
>     </details>
> </purchaseorder>
> 
> With your example I get to the element details. I get null in return for
> shipto-element and the complete purchaseheader-part.
> Please help!!! Thanks for your previous explanations and samples... that
> helps a lot.
> 
> Regards,
> 
> Henk.
> 
> -----Original Message-----
> From: Scott Nichol [mailto:snicholnews@scottnichol.com]
> Sent: donderdag 12 juni 2003 19:44
> To: soap-user@ws.apache.org
> Subject: RE: Serializer/deserializer problem.....
> 
> 
> This may help: I've added some more processing code into the
> messaging sample and attached a copy to this message.
> 
> The envelope you are parsing probably has a single body element, as
> in the sample.  You must then recursively processes the child nodes
> of that element to get all your parameters.
> 
> On 12 Jun 2003 at 16:05, Henk Schipper wrote:
> 
> > Please who can help me trough this problem:
> > I still get null in the below specs. From the deployment description (the
> > javaclass) I get to alright, thanks to scott.  When I display the fields
> in
> > : public void purchaseOrder (Envelope env, SOAPContext reqCtx,
> > SOAPContext resCtx)
> > I get the MyHeader tag and MyBody tag, but with null, while there should
> be
> > a lot more elements in there.
> > Through messaging I only need the whole string (whole soap message). With
> > what function in my class can I get it.
> >
> > I am learning every day now... but there are still some things (the
> > header/body example) which I cannot figure out. I read a lot of info, but
> 2
> > and 2 is still not 4 at this moment.
> >
> > Please Help!!!!!
> >
> > Henk.
> >   -----Original Message-----
> >   From: Henk Schipper [mailto:hs@xs4all.nl]
> >   Sent: woensdag 11 juni 2003 23:38
> >   To: soap-user@ws.apache.org
> >   Subject: RE: Serializer/deserializer problem.....
> >
> >
> >   Thanks for your reply
> >
> >   Unfortunately, I create a message from a microsoft client. Interop
> problem
> > probably. I remeber reading about putting the namespace qualifiers in
> front
> > of every element belonging to it. This client cannot do that.
> >   In the java program 'transportMessage.java' I can print the whole soap
> > message to the serverlog. But how can i forward (or read it) into the
> class
> > using for a respons?
> >   This is my big question. I hope you can assist me in this part.
> >
> >   Thanks for your help!!!! It is very appriciated!!!
> >
> >   Henk.
> >     -----Original Message-----
> >     From: Vishal Shah [mailto:shahvi@yahoo.com]
> >     Sent: woensdag 11 juni 2003 22:08
> >     To: soap-user@ws.apache.org
> >     Subject: RE: Serializer/deserializer problem.....
> >
> >
> >     Henk,
> >
> >     You can try this...
> >     public void purchaseOrder (Envelope requestEnvelope, SOAPContext
> reqCtx,
> >     SOAPContext resCtx) {
> >
> >      try {
> >
> >       Body b = requestEnvelope.getBody();
> >       Vector entries = b.getBodyEntries();
> >       //interrogate this vector that contains elements
> >
> >       for(int i=0; i<entries.size(); ++i) {
> >
> >         Element e = (Element) entries.elementAt(i);
> >
> >         // get node name
> >
> >         nodeName = e.getNodeName();
> >
> >         //continue processing your elements...
> >
> >       }
> >
> >
> >
> >       }catch( Exception e ){
> >
> >     }
> >
> >
> >
> >     }
> >
> >
> >
> >
> >
> >
> >     Henk Schipper <hs@xs4all.nl> wrote:
> >       Hi Scott,
> >
> >       Thanks for the first step. I got some response. Only the header and
> > body
> >       info, not the fields themselves. (the elements). I am sorry for
> being
> > such a
> >       newby... but how do i get the elements as well? I read about
> >       marshalling..... how?
> >       I hope you can help me?
> >
> >       Thanks.
> >
> >       Henk.
> >
> >       -----Original Message-----
> >       From: Scott Nichol [mailto:snicholnews@scottnichol.com]
> >       Sent: woensdag 11 juni 2003 15:55
> >       To: soap-user@ws.apache.org
> >       Subject: RE: Serializer/deserializer problem.....
> >
> >
> >       With messaging, each method in your service must have a parameter
> >       list like
> >
> >       public void purchaseOrder (Envelope env, SOAPContext reqCtx,
> >       SOAPContext resCtx)
> >
> >       i.e. and Envelope and two SOAPContext. You then extract information
> >       from the envelope and input context, then manipulate the output
> >       context to send the result. See the messaging s! ample for simple
> >       examples.
> >
> >       On 11 Jun 2003 at 11:17, Henk Schipper wrote:
> >
> >       > Scott,
> >       >
> >       > I would like to try the messaging, but whenever i try, i get
> >       >
> >
> >
> :'(org.apache.soap.Envelope,org.apache.soap.rpc.SOAPContext,org.apache.soap.
> >       > rpc.SOAPContext) -- no signature match'
> >       >
> >       > And ... it finds the class ....it includes the method (here a
> > snippit of
> >       > the source:
> >       >
> >       > public String MyMethod(String fielda) throws
> > IllegalArgumentException
> >       > {
> >       > System.out.println("MyMethod");
> >       > // System.out.println(buf);
> >       > String buf = "Output";
> >       > return buf;
> >       > }
> >       >
> >       > As you can see, only something to see if it works....
> >       > What am i doing wrong? Please Help.
> >       >
> >       > Regards,
> >       >
> >       > Henk.
> >       >
> >       > -----Original Message-----
> >       > From: Scott Nichol [mailto:snicholnews@scottnichol.com]
> >       > Sent: dinsdag 10 juni 2003 17:09
> >       > To: soap-user@ws.apache.org
> >       > Subject: Re: Serializer/deserializer problem.....
> >       >
> >       >
> >       > One way to access the XML that is the SOAP envelope is to use the
> >       > messaging API.
> >       >
> >       > If you want to keep using the RPC API, there are a couple of ways
> to
> >       > get at the XML. One is to create and install an envelope editor
> >       > (http://ws.apache.org/soap/docs/guide/transhooks.html). This
> allows
> >       > you to read the envelope and write a changed version. If you want
> to
> >       > do checks and fail the call, you could throw a run-time exception.
> >       >
> >       > Alternatively, you can get access to SOAPContext in your service
> >       > methods (http://ws.apache.org/soap/docs/guide/migration.html). You
> >       > can use methods like getRootPart or getEnvelope to get the
> envelope.
> >       >
> >       > On 10 Jun 2003 at 14:50, Henk Schipper wrote:
> >       >
> >       > > Hi All,
> >       > >
> >       > > This subject is already in many different ways been discus! sed,
> > but I
> >       > cannot
> >       > > find mine..... I hope you can help me.
> >       > >
> >       > > I am running Apache tomcat 4.1.24, xerces java2, soap 2.3.1
> >       > > bsf/ant/mail/jaxp
> >       > > Server is running well... other services are running well, but
> > when i am
> >       > > trying getting the example below to run, every time, i have the
> > same
> >       > > problem:
> >       > >
> >       > > Deserialiser:
> >       > > package org.apache.soap.encoding.soapenc;
> >       > >
> >       > > import java.io.*;
> >       > > import org.w3c.dom.*;
> >       > > import org.apache.soap.util.xml.*;
> >       > > import org.apache.soap.*;
> >       > > import org.apache.soap.util.*;
> >       > > import org.apache.soap.rpc.*;
> >       > >
> >       > > public class MyDeserializer implements Deserializer
> >       > > {
> >       > > public Bean unmarshall(String inScopeEncStyle, QName
> elementType,
> >       > > Node src, XMLJavaMappingRegistry xjmr,
> >       > > SOAPContext ctx) throws
> >       IllegalArgumentException
> >       > > {
> >       > > System.out.println("DEBUG deserializer \n");
> >       > > Element root = (Element)src;
> >       > > String value = DOMUtils.getChildCharacterData(root);
> >       > > return new Bean(String.class, value);
> >       > > }
> >       > > }
> >       > >
> >       > >
> >       > > I attached the previous mail to this one for more information.
> >       > >
> >       > > Is there otherwise a way to pass the complete xml to a class
> with
> > what i
> >       > can
> >       > > work with? Here I mean, pass directly the xml to the Provider
> > Class with
> >       > no
> >       > > editing, so i can do my checks? I know.... this should not be
> the
> > way,
> >       but
> >       > I
> >       > > am desperate at the moment... and also ran out of time..
> >       > >
> >       > > ANY HELP IS APPRECEATED!!!!
> >       > >
> >       > > Thanks
> >       > >
> >       > > Henk.
> >       > >
> >       >
> >       >
> >       > Scott Nichol
> >       >
> >       > Do not reply directly to ! this e-mail address,
> >       > as it is filtered to only receive e-mail from
> >       > specific mailing lists.
> >       >
> >       >
> >       >
> >       >
> >
> >
> >       Scott Nichol
> >
> >       Do not reply directly to this e-mail address,
> >       as it is filtered to only receive e-mail from
> >       specific mailing lists.
> >
> >
> >
> >
> >
> > --------------------------------------------------------------------------
> --
> >     Do you Yahoo!?
> >     Free online calendar with sync to Outlook(TM).
> >
> 
> 
> Scott Nichol
> 
> Do not reply directly to this e-mail address,
> as it is filtered to only receive e-mail from
> specific mailing lists.
> 
> 
> 
> 
> 


Scott Nichol

Do not reply directly to this e-mail address,
as it is filtered to only receive e-mail from
specific mailing lists.



Mime
View raw message