Hi Nirmal,
Thanks for the quick response. I wanted to try a few things before I
responded, and have now had time to do that.
Essentially I am doing what you described with your code, except I am not
using DOMs, but rather our code is structured so that all complex types get
associated with a single dynamic serializer/deserializer. This works fine
with rpc-style, and I don't see any reason it shouldn't work for
doc-styles.
Anyway, after I setObjectPart("parameters", value); and invoke the
operation, WSIF returns the following error:
Exception executing request: Error executing WSIF request: part zipcode,
not found in input message
...and from the looks of the WSIF code, the convenience method actual
changes the internal storage of a message to contain zipcode and licenseKey
verus the original "parameters" part, thus demanding that those parts be
set.
I am not running the 2_0 RC code but the 1.2 code.
Thanks.
Rhett
Nirmal Mukhi
<[EMAIL PROTECTED] To: [EMAIL PROTECTED]
.com> cc:
Subject: Re: [wsif] zip2geo sample
questions
01/08/2003
11:53 AM
Please respond
to axis-user
Hi,
Some bugs in my previous source code listing; here's the fixed version:
// create the input, output and fault messages associated with this
operation
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
// at this point if you want to read the XML data from a file you
could
// do something like
// Document doc = db.parse (new InputSource (new
FileReader(..)));
Document document = db.newDocument();
// create element according to what is reqd by service, as
specified in WSDL
Element topLevel = document.createElementNS("http://ws.cdyne.com
","GetLatLong");
topLevel.setAttribute("xmlns","http://ws.cdyne.com");
document.appendChild(topLevel);
Element zip = document.createElement("zipcode");
Text zipValue = document.createTextNode(args[1]);
zip.appendChild(zipValue);
Element license = document.createElement("LicenseKey");
Text licenseValue = document.createTextNode("");
license.appendChild(licenseValue);
topLevel.appendChild(zip);
topLevel.appendChild(license);
WSIFMessage input = operation.createInputMessage();
WSIFMessage output = operation.createOutputMessage();
WSIFMessage fault = operation.createFaultMessage();
// populate the input message
input.setObjectPart("parameters",topLevel);
// do the invocation
if (operation.executeRequestResponseOperation(input, output,
fault)) {
// invocation succeeded, extract information from output
// message
Element retValue = (Element) output.getObjectPart
("parameters");
System.out.println("Got return value "+retValue);
Thanks,
Nirmal.
[EMAIL PROTECTED]
To:
[EMAIL PROTECTED]
01/08/2003 11:47 AM cc:
Please respond to axis-user Subject: [wsif] zip2geo
sample questions
In the WSDL for the Zip2Geo sample, the Message "GetLatLongSoapIn" contains
a single part of "parameters" which references the element "GetLatLong"
The sample code that invokes an operation using this message, the schema is
unwrapped and two input parts are being set vs. the single part that is
specified in the WSDL document. Also, this appears to be the case only
when style="document" and use="literal". Does anyone know the reasoning
behind this, i.e., the unwrapping of the element reference? Also, what
happens is the element references a sufficiently complexType whereby the
complexType is several layers deep and primitive types exist at each level?
Is a input part then required for each of those primitives?
Thanks much.
Rhett DeWall
Sybase Inc.
3665 Discovery Drive
Boulder, CO 80303
303/413-4163