The response is improperly formed XML.  This is caused by a bug in Main.wod:

XMLNode4: WOXMLNode {
 elementName = "r:SingleEndpoint";
 mustUnderStand = "1";
 "xmlns:SingleEndpoint" = "http://vendor.demo/endpoint";;
 "xsi:type" = "xsd:int";
}

The line

 "xmlns:SingleEndpoint" = "http://vendor.demo/endpoint";;

should be

 "xmlns:r" = "http://vendor.demo/endpoint";;

Scott Nichol

----- Original Message -----
From: "Lui" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, June 14, 2002 1:13 PM
Subject: Re: Webobjects and SOAP


> Scott,
>
> Thank you for your detail response. I did find out
> that the reason I was gettting the 411 SOAPFault was
> because I was missing the appropriate DirectAction in
> my URL .
>
> The SOAP server runs on the WO java app server. I am
> testing with the sample Server as a learning exercise.
>
>
> As you said, I am having errors in parsing the SOAP
> Response due to the returning header. I am using this
> chunk of code to display the elements from the
> SOAPResponse:
>
>         // Get DocumentBuilder to parse Response
>         xdb = XMLParserUtils.getXMLDocBuilder();
>         // Use input XML file as InputSource to
> parse()
>         InputSource is = new InputSource(br);
>         doc = xdb.parse(is);
>
>         // Get the Root Element and print it
>         Element elem = doc.getDocumentElement();
>         System.out.println("Root Element is: " +
> elem.getTagName());
>
>         // Get all of the Child Elements and print
> them one by one
>         NodeList children =
> elem.getElementsByTagName("*");
>         int cnt = children.getLength();
>         for (int i = 0; i < cnt; i++) {
>             Node n = children.item(i);
>             String name = n.getNodeName();
>             String val =
> n.getFirstChild().getNodeValue();
>             System.out.println(name + ": " + val);
>         }
>
> The resulting SOAPResponse looks like this:
>
> XML SOAPResponse Document:
>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope";
>
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding";><SOAP-ENV:
Header><r:SingleEndpoint
> mustUnderStand="1"
> xmlns:SingleEndpoint="http://vendor.demo/endpoint";
>
xsi:type="xsd:int">0</r:SingleEndpoint></SOAP-ENV:Header><SOAP-ENV:Body><m:O
rderResponse
>
xmlns:m="http://vendor.demo/demo/response";><ConfirmationNumber>E1114964844</
ConfirmationNumber></m:OrderResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
>
> Getting error:
>
> XML SOAPResponse Document:
> [Fatal Error] :2:268: The prefix "r" for element
> "r:SingleEndpoint" is not bound.
> Exception in thread "main"
> org.xml.sax.SAXParseException: The prefix "r" for
> element "r:SingleEndpoint" is not bound.
>         at
> org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:235)
>         at
>
org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:20
1)
>         at POClient.sendSoapRequest(POClient.java:131)
>         at POClient.main(POClient.java:165)
>
> Sharon
> -------------------------
> ----------------
> From: Scott Nichol <[EMAIL PROTECTED]>
> Date: Thu Jun 13, 2002  07:57:46  PM US/Pacific
> To: [EMAIL PROTECTED]
> Subject: Re: Webobjects and SOAP
> Reply-To: [EMAIL PROTECTED]
>
> Some things I see from Apple's source.
>
> 1. The 411 fault comes from
> DirectAction#defaultAction.  This means your Apache
> SOAP client is not using the correct URL.  It must use
> http://server[:port]/cgi-bin/WebObjects/SOAPServer.woa/wa/OrderInterface
> (SOAPTransport.java).
>
> 2. The WO SOAP server determines the service to invoke
> from that URL, so it does
> not make any difference what your client specifies as
> the target URI.
>
> 3. The namespace used for the method and parameters
> sent by the client
> (SOAPBuilder.java) is
> http://wwdc-demo.apple.com/soap/request/, but the
> server
> (Main.java) ignores this.  The method is named Order.
> The parameters are named
> OrderItems, CustomerID and BillMethod.
>
> 4. The response (Main.wod, Main.html) has a SOAP
> Header with an element that has
> a mustUnderstand="1" attribute, which *should* be a
> problem, but maybe Apache
> SOAP ignores this.  The SOAP Body has an OrderResponse
> element in the namespace
> http://vendor.demo/demo/response, which itself
> contains an element named
> ConfirmationNumber.  This does not have an xsi:type
> attribute, so you will need
> to use the Apache SOAP mapping workaround for this.
>
> The bottom line is that it should be possible to write
> an Apache SOAP client
> that will work with this server, but I personally
> would not recommend using the
> server sample as a template for implementing SOAP
> services, since so much is
> hard-coded and the SOAP implementation is lacking.
> IMHO, you would be better
> off using Apache SOAP in the J2EE application server
> that is part of WO 5.x.
>
> Scott Nichol
>
> ----- Original Message -----
> From: "Scott Nichol" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, June 13, 2002 10:01 PM
> Subject: Re: Webobjects and SOAP
>
>
> Sharon,
>
> I see the source is on Apple's Web site, e.g.
>
>
http://developer.apple.com/samplecode/Sample_Code/WebObjects/SOAPClient/SOAP
Tran
> sport.java.htm.  Can you post the source for your
> client so I can have a look?
>
> Thanks.
>
> Scott Nichol
>
> ----- Original Message -----
> From: "Scott Nichol" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, June 13, 2002 9:51 PM
> Subject: Re: Webobjects and SOAP
>
>
> Sharon,
>
> Did you get any response to this?  I have experience
> with WO 4, but not 5.x
> and
> the sample SOAP server.  Does Apple provide any sample
> client code for the
> SOAP
> server?  If so, it would be useful to either look at
> that source or run the
> client and capture the data sent over the weire.  If
> not, is source provided
> for
> the SOAP server?
>
> Out of curiosity, does the SOAP server run on the J2EE
> app server or the WO
> Java
> app server?
>
> Scott Nichol
>
> ----- Original Message -----
> From: "Lui" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, June 12, 2002 5:45 PM
> Subject: Webobjects and SOAP
>
>
> Greetings,
>
> I am new to SOAP. I am trying to write an apache SOAP
> client sending SOAPRequests to the sample SOAP server
> that comes with WebObjects 5.1. I just keep giving the
> 411 SOAPFault Response.  I need some help. If you are
> familiar with WebObjects and willing to take a look at
> what I have so far, could you send me a response?
>
> Thanks in advance for your help.
> Sharon
> [EMAIL PROTECTED]
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! - Official partner of 2002 FIFA World Cup
> http://fifaworldcup.yahoo.com
>
>
>
>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! - Official partner of 2002 FIFA World Cup
> http://fifaworldcup.yahoo.com
>

Reply via email to