Steffen Neumann
2010-Jun-22 06:56 UTC
[R] SSOAP fails with .types[[1]] : subscript out of bounds
Hi,
I am trying to create a BioMoby client in R using SSOAP.
BioMoby is a normal SOAP web service, with request
and response messages wrapped in BioMoby XML dialect.
Since the particular WSDL I am having problems with
is autogenerated and used similarly by *many* services,
it would be quite important to a) fix SSOAP or
b) fix the WSDL generator.
I am a bit lost how to continue debugging here,
any clues or help to get me going ?
Thanks in advance,
Yours,
Steffen
The code:
library(SSOAP)
w =
processWSDL("http://biomoby.org/services/wsdl/ipb-halle.de/MassBank_Instruments")
iface = genSOAPClientInterface(def = w, verbose=TRUE)
The output and system info:
> library(SSOAP)
>
> w =
processWSDL("http://biomoby.org/services/wsdl/ipb-halle.de/MassBank_Instruments")
> iface = genSOAPClientInterface(def = w, verbose=TRUE)
Operation MassBank_Instruments
Error in .types[[1]] : subscript out of bounds>
> traceback()
4: paste(" .elementFormQualified", .elementFormQualified, sep = "
= ")
3: paste("function(", paste(c(sapply(names(.operation at parameters),
convertToSName), paste("server = .defaultServer, .convert = ",
converter, ", .opts = list(...), ...")), collapse = ",\n\t
"),
paste(",\n\t nameSpaces = ", ifelse(is.na(nameSpaces),
nameSpaces,
simple.dQuote(nameSpaces))), if (insertSoapHeader) ",
.soapHeader = NULL",
")\n{\n", fixes[1], "\t .SOAP(server, .operation at name,
",
"\n\t\t", dotArgs, if (length(.operation at parameters))
", " else "",
"\n\t\t", "action = .operation at action, ",
"\n\t\t", "xmlns = .operation at namespace, ",
"\n\t\t", ".types = .operation at parameters, ",
"\n\t\t", ".convert = .convert,",
"\n\t\t", ".header = .header,", "\n\t\t",
".opts = .opts ",
if (!is.na(.operation at use["input"]) && .operation at
use["input"] ==
"literal") ",\n\t\t .literal = TRUE", ",
nameSpaces = nameSpaces,",
paste(" .elementFormQualified", .elementFormQualified, sep =
" = "),
if (insertSoapHeader) ", .soapHeader = .soapHeader",
")\n",
fixes[2], "\n}", sep = "")
2: createOperationDefinition(i, server, def at types, env, nameSpaces,
addSoapHeader)
1: genSOAPClientInterface(def = w, verbose = TRUE)> sessionInfo()
R version 2.10.1 (2009-12-14)
x86_64-pc-linux-gnu
locale:
[1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C
[3] LC_TIME=en_GB.utf8 LC_COLLATE=en_GB.utf8
[5] LC_MONETARY=C LC_MESSAGES=en_GB.utf8
[7] LC_PAPER=en_GB.utf8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.utf8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] SSOAP_0.5-5
loaded via a namespace (and not attached):
[1] RCurl_1.3-0 XML_3.1-0 XMLSchema_0.1-4
--
IPB Halle AG Massenspektrometrie & Bioinformatik
Dr. Steffen Neumann http://www.IPB-Halle.DE
Weinberg 3 http://msbi.bic-gh.de
06120 Halle Tel. +49 (0) 345 5582 - 1470
+49 (0) 345 5582 - 0
sneumann(at)IPB-Halle.DE Fax. +49 (0) 345 5582 - 1409
Steffen Neumann
2010-Jun-22 08:02 UTC
[R] SSOAP fails with .types[[1]] : subscript out of bounds
On Tue, 2010-06-22 at 08:56 +0200, Steffen Neumann wrote:> Since the particular WSDL I am having problems with > is autogenerated and used similarly by *many* services, > it would be quite important to a) fix SSOAP or > b) fix the WSDL generator.So I got a bit further, the reason for the error is that the WSDL *does not have* any <wsdl:types>...</wsdl:types>, and I guess that's because <wsdl:message ...> has as parameter something as simple as <wsdl:part name="data" type="xsd:string"/> (where "data" is a certain XML document itself, conforming to BioMoby conventions.) So, if XMLSchema:::processSchemaTypes() does not find any custom/embedded type definitions, is it possibe to "inject" those from the http://www.w3.org/2001/XMLSchema.xsd into genSOAPClientInterface() instead ? Or would I use something different than genSOAPClientInterface() in first place ? Or did I get something completely wrong ? Yours, Steffen -- IPB Halle AG Massenspektrometrie & Bioinformatik Dr. Steffen Neumann http://www.IPB-Halle.DE Weinberg 3 http://msbi.bic-gh.de 06120 Halle Tel. +49 (0) 345 5582 - 1470 +49 (0) 345 5582 - 0 sneumann(at)IPB-Halle.DE Fax. +49 (0) 345 5582 - 1409
Maybe Matching Threads
- Working cludge [Re: SSOAP fails with .types[[1]] : subscript out of bounds]
- SSOAP: arguments passed as
- help with SSOAP (can't find working examples)
- XMLSchema:::processSchemaTypes() fails with XMLSchema.xsd [was: SSOAP fails with .types[[1]] : subscript out of bounds]
- SSOAP Parameter Structures: Nested Arrays