/** When you get a property from an SOAP, it just returns another SOAP with the property name tacked onto methodname. */
public Object get(String name) {
- return new SOAP(url.toString(), (methodname.equals("") ? "" : methodname + ".") + name, http, action, nameSpace);
+ return new SOAP(url.toString(), (method.equals("") ? "" : method + ".") + name, http, action, nameSpace);
}
} else if (parent != null && parent instanceof JS) {
objects.removeElementAt(objects.size() - 1);
- ((JS)parent).put(name, me);
+ try {
+ ((JS)parent).put(name, me);
+ } catch (JSExn e) {
+ throw new Error("this should never happen");
+ }
}
}
/** Appends the SOAP representation of <code>o</code> to <code>sb</code> */
- void appendObject(String name, Object o, StringBuffer sb) throws JS.Exn {
+ void appendObject(String name, Object o, StringBuffer sb) throws JSExn {
if (o instanceof Number) {
if ((double)((Number)o).intValue() == ((Number)o).doubleValue()) {
sb.append(" <" + name + " xsi:type=\"xsd:int\">");
} catch (IOException e) {
if (Log.on) Log.log(this, "caught IOException while attempting to send a ByteStream via SOAP");
if (Log.on) Log.log(this, e);
- throw new JS.Exn("caught IOException while attempting to send a ByteStream via SOAP");
+ throw new JSExn("caught IOException while attempting to send a ByteStream via SOAP");
}
} else if (o instanceof String) {
}
}
- protected String send(JSArray args, HTTP http) throws JS.Exn, IOException {
+ protected String buildRequest(JSArray args) throws JSExn, IOException {
// build up the request
StringBuffer content = new StringBuffer();
content.append("SOAPAction: " + action + "\r\n\r\n");
content.append(" xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\">\r\n");
content.append("<SOAP-ENV:Body>\r\n");
content.append(" <");
- content.append(methodname);
+ content.append(method);
content.append(nameSpace != null ? " xmlns=\"" + nameSpace + "\"" : "");
content.append(">\r\n");
if (args.length() > 0) {
appendObject((String)key, ((JS)args.elementAt(0)).get(key), content);
}
}
- content.append(" </" + methodname + "></SOAP-ENV:Body></SOAP-ENV:Envelope>\r\n");
+ content.append(" </" + method + "></SOAP-ENV:Body></SOAP-ENV:Envelope>\r\n");
return content.toString();
}
- SOAP(String url, String methodname, String action, String nameSpace) { this(url, methodname, new HTTP(url), action, nameSpace); }
+ SOAP(String url, String methodname, String action, String nameSpace) {
+ this(url, methodname, new HTTP(url), action, nameSpace);
+ }
SOAP(String url, String methodname, HTTP http, String action, String nameSpace) {
super(url, methodname, http);
this.action = action;