You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@xml.apache.org by Yusuf Goolamabbas <yu...@outblaze.com> on 2000/08/21 08:33:23 UTC

Specifying SOAPAction in call.invoke leads to SOAPException

Hi, If I specific a string as the second parameter to call.invoke, I get
the following error

> Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> be specified for every parameter.;
> targetException=java.lang.IllegalArgumentException: The
> 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> specified for every parameter.]
> at org.apache.soap.rpc.Call.invoke(Call.java:181)
> at Geo.main(Geo.java:68)

However, if I specifying a null string in Call.invoke(url,""). I get an
the following response from the server which seems appropiate.
I am at a loss as to how to specify the SOAPAction header field

Any assistance would be appreciated

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body><s:Fault><faultcode>s:Client</faultcode>
<faultstring>Bad Request</faultstring>
<detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
</s:Body></s:Envelope>

Regards, Yusuf


RE: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by "Steven J. McDowall" <sj...@visi.com>.
Run the request through tcptunnelgui (see release / install notes) and
see what the response is..

My guess is that your Perl program is actually being invoked and
is sending back a response, but it is ill formed.. (sort of..)
I know someone (D. Brown?) was working on the Perl stuff to make it more
compliant to SOAP 1.1 (it was only Soap 1.0 compliant previously)..

Alas, I think the problem is that he still did not code the
	"xsi:type=xsd:string" attribute for the return elements, which
Apache SOAP requires so it knows how to map the types back to standard
java types.. :-(

What I did was to hard code in the Perl SOAP code a xsi:type=xsd:string
for each return element since everything can be represented as a string
in Perl.. :-)

I am not sure what the final resolution will be, but IMHO the Java SOAP
is more compliant to the spec since it does indicate each element's type
must be known either through explicit types or through a "schema" like
device
(something like MSFT's SCL or XML Schema)..

Hope this helps somewhat..

-Steve


-----Original Message-----
From: Yusuf Goolamabbas [mailto:yusufg@outblaze.com]
Sent: Monday, August 21, 2000 2:14 AM
To: soap-user@xml.apache.org
Subject: Re: Specifying SOAPAction in call.invoke leads to SOAPException


Sorry to respond to my own post.

I am using a Java client [SOAP 2.0] to call a perl module using DM's
SOAP/Perl 0.25.

Is this an interoperability issue ?
Are there any plans for a SOAPAthon ala NFS's Connecthaton where vendors
get to trash out interoperability issues ?


> Hi, If I specific a string as the second parameter to call.invoke, I get
> the following error
>
> > Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> > msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> > be specified for every parameter.;
> > targetException=java.lang.IllegalArgumentException: The
> > 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> > specified for every parameter.]
> > at org.apache.soap.rpc.Call.invoke(Call.java:181)
> > at Geo.main(Geo.java:68)
>
> However, if I specifying a null string in Call.invoke(url,""). I get an
> the following response from the server which seems appropiate.
> I am at a loss as to how to specify the SOAPAction header field
>
> Any assistance would be appreciated
>
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Body><s:Fault><faultcode>s:Client</faultcode>
> <faultstring>Bad Request</faultstring>
> <detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
> </s:Body></s:Envelope>
>
> Regards, Yusuf
>

--
Yusuf Goolamabbas
yusufg@outblaze.com


RE: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by "Steven J. McDowall" <sj...@visi.com>.
Run the request through tcptunnelgui (see release / install notes) and
see what the response is..

My guess is that your Perl program is actually being invoked and
is sending back a response, but it is ill formed.. (sort of..)
I know someone (D. Brown?) was working on the Perl stuff to make it more
compliant to SOAP 1.1 (it was only Soap 1.0 compliant previously)..

Alas, I think the problem is that he still did not code the
	"xsi:type=xsd:string" attribute for the return elements, which
Apache SOAP requires so it knows how to map the types back to standard
java types.. :-(

What I did was to hard code in the Perl SOAP code a xsi:type=xsd:string
for each return element since everything can be represented as a string
in Perl.. :-)

I am not sure what the final resolution will be, but IMHO the Java SOAP
is more compliant to the spec since it does indicate each element's type
must be known either through explicit types or through a "schema" like
device
(something like MSFT's SCL or XML Schema)..

Hope this helps somewhat..

-Steve


-----Original Message-----
From: Yusuf Goolamabbas [mailto:yusufg@outblaze.com]
Sent: Monday, August 21, 2000 2:14 AM
To: soap-user@xml.apache.org
Subject: Re: Specifying SOAPAction in call.invoke leads to SOAPException


Sorry to respond to my own post.

I am using a Java client [SOAP 2.0] to call a perl module using DM's
SOAP/Perl 0.25.

Is this an interoperability issue ?
Are there any plans for a SOAPAthon ala NFS's Connecthaton where vendors
get to trash out interoperability issues ?


> Hi, If I specific a string as the second parameter to call.invoke, I get
> the following error
>
> > Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> > msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> > be specified for every parameter.;
> > targetException=java.lang.IllegalArgumentException: The
> > 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> > specified for every parameter.]
> > at org.apache.soap.rpc.Call.invoke(Call.java:181)
> > at Geo.main(Geo.java:68)
>
> However, if I specifying a null string in Call.invoke(url,""). I get an
> the following response from the server which seems appropiate.
> I am at a loss as to how to specify the SOAPAction header field
>
> Any assistance would be appreciated
>
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Body><s:Fault><faultcode>s:Client</faultcode>
> <faultstring>Bad Request</faultstring>
> <detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
> </s:Body></s:Envelope>
>
> Regards, Yusuf
>

--
Yusuf Goolamabbas
yusufg@outblaze.com


Re: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by Yusuf Goolamabbas <yu...@outblaze.com>.
Sorry to respond to my own post.

I am using a Java client [SOAP 2.0] to call a perl module using DM's
SOAP/Perl 0.25.

Is this an interoperability issue ?
Are there any plans for a SOAPAthon ala NFS's Connecthaton where vendors
get to trash out interoperability issues ?


> Hi, If I specific a string as the second parameter to call.invoke, I get
> the following error
> 
> > Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> > msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> > be specified for every parameter.;
> > targetException=java.lang.IllegalArgumentException: The
> > 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> > specified for every parameter.]
> > at org.apache.soap.rpc.Call.invoke(Call.java:181)
> > at Geo.main(Geo.java:68)
> 
> However, if I specifying a null string in Call.invoke(url,""). I get an
> the following response from the server which seems appropiate.
> I am at a loss as to how to specify the SOAPAction header field
> 
> Any assistance would be appreciated
> 
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Body><s:Fault><faultcode>s:Client</faultcode>
> <faultstring>Bad Request</faultstring>
> <detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
> </s:Body></s:Envelope>
> 
> Regards, Yusuf
> 

-- 
Yusuf Goolamabbas
yusufg@outblaze.com

Re: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by Yusuf Goolamabbas <yu...@outblaze.com>.
> 
> Well, it is not supported on the server side, but that only means
> that there is nothing DONE with it.. :-)
> 
> If you supply an action header to the invoke call, it does properly
> format and create the SOAPAction header correctly.. 
> 
> I think his problem (since he is working with Perl) lies somewhere else

If the second parameter to invoke is empty I get the following response
from the server as captured by Ethereal <http://ethereal.zing.org/>


HTTP/1.1 200 OK 
Date: Mon, 21 Aug 2000 14:11:44 GMT 
Server: Apache/1.3.12 (Unix) mod_perl/1.24 
Content-Type: text/plain 
Content-Length: 233 
Connection: close


<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body><s:Fault><faultcode>s:Client</faultcode>
<faultstring>Bad Request</faultstring>
<detail>Unrecognized SOAPAction header: ""</detail>
</s:Fault></s:Body></s:Envelope>

If I have a valid second parameter to invoke I get the following
response from the server though I get a SOAPException with the invoke
call. The response indicates that the call was successful received by
SOAP/Perl yet my client indicates otherwise

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:n1="urn:com-develop-geometry"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><n1:calculateAreaResponse
s:id="ref-1"
s:root="1"><area>16200</area></n1:calculateAreaResponse></s:Body></s:Envelope>




Re: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by Yusuf Goolamabbas <yu...@outblaze.com>.
> 
> Well, it is not supported on the server side, but that only means
> that there is nothing DONE with it.. :-)
> 
> If you supply an action header to the invoke call, it does properly
> format and create the SOAPAction header correctly.. 
> 
> I think his problem (since he is working with Perl) lies somewhere else

If the second parameter to invoke is empty I get the following response
from the server as captured by Ethereal <http://ethereal.zing.org/>


HTTP/1.1 200 OK 
Date: Mon, 21 Aug 2000 14:11:44 GMT 
Server: Apache/1.3.12 (Unix) mod_perl/1.24 
Content-Type: text/plain 
Content-Length: 233 
Connection: close


<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body><s:Fault><faultcode>s:Client</faultcode>
<faultstring>Bad Request</faultstring>
<detail>Unrecognized SOAPAction header: ""</detail>
</s:Fault></s:Body></s:Envelope>

If I have a valid second parameter to invoke I get the following
response from the server though I get a SOAPException with the invoke
call. The response indicates that the call was successful received by
SOAP/Perl yet my client indicates otherwise

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:n1="urn:com-develop-geometry"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><n1:calculateAreaResponse
s:id="ref-1"
s:root="1"><area>16200</area></n1:calculateAreaResponse></s:Body></s:Envelope>




RE: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by "Steven J. McDowall" <sj...@visi.com>.
Well, it is not supported on the server side, but that only means
that there is nothing DONE with it.. :-)

If you supply an action header to the invoke call, it does properly
format and create the SOAPAction header correctly.. 

I think his problem (since he is working with Perl) lies somewhere else

-Steve


-----Original Message-----
From: Cory Isaacson [mailto:cisaacson@capita2.com]
Sent: Monday, August 21, 2000 8:28 AM
To: soap-user@xml.apache.org
Subject: Re: Specifying SOAPAction in call.invoke leads to SOAPException


In the example code there is a note that this version of SOAP does not
support the action parameter. You probably could manually added it to the
header object.

Cory
----- Original Message -----
From: "Yusuf Goolamabbas" <yu...@outblaze.com>
To: <so...@xml.apache.org>
Sent: Monday, August 21, 2000 2:33 AM
Subject: Specifying SOAPAction in call.invoke leads to SOAPException


> Hi, If I specific a string as the second parameter to call.invoke, I get
> the following error
>
> > Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> > msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> > be specified for every parameter.;
> > targetException=java.lang.IllegalArgumentException: The
> > 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> > specified for every parameter.]
> > at org.apache.soap.rpc.Call.invoke(Call.java:181)
> > at Geo.main(Geo.java:68)
>
> However, if I specifying a null string in Call.invoke(url,""). I get an
> the following response from the server which seems appropiate.
> I am at a loss as to how to specify the SOAPAction header field
>
> Any assistance would be appreciated
>
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Body><s:Fault><faultcode>s:Client</faultcode>
> <faultstring>Bad Request</faultstring>
> <detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
> </s:Body></s:Envelope>
>
> Regards, Yusuf
>



RE: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by "Steven J. McDowall" <sj...@visi.com>.
Well, it is not supported on the server side, but that only means
that there is nothing DONE with it.. :-)

If you supply an action header to the invoke call, it does properly
format and create the SOAPAction header correctly.. 

I think his problem (since he is working with Perl) lies somewhere else

-Steve


-----Original Message-----
From: Cory Isaacson [mailto:cisaacson@capita2.com]
Sent: Monday, August 21, 2000 8:28 AM
To: soap-user@xml.apache.org
Subject: Re: Specifying SOAPAction in call.invoke leads to SOAPException


In the example code there is a note that this version of SOAP does not
support the action parameter. You probably could manually added it to the
header object.

Cory
----- Original Message -----
From: "Yusuf Goolamabbas" <yu...@outblaze.com>
To: <so...@xml.apache.org>
Sent: Monday, August 21, 2000 2:33 AM
Subject: Specifying SOAPAction in call.invoke leads to SOAPException


> Hi, If I specific a string as the second parameter to call.invoke, I get
> the following error
>
> > Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> > msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> > be specified for every parameter.;
> > targetException=java.lang.IllegalArgumentException: The
> > 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> > specified for every parameter.]
> > at org.apache.soap.rpc.Call.invoke(Call.java:181)
> > at Geo.main(Geo.java:68)
>
> However, if I specifying a null string in Call.invoke(url,""). I get an
> the following response from the server which seems appropiate.
> I am at a loss as to how to specify the SOAPAction header field
>
> Any assistance would be appreciated
>
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Body><s:Fault><faultcode>s:Client</faultcode>
> <faultstring>Bad Request</faultstring>
> <detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
> </s:Body></s:Envelope>
>
> Regards, Yusuf
>



Re: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by Cory Isaacson <ci...@capita2.com>.
In the example code there is a note that this version of SOAP does not
support the action parameter. You probably could manually added it to the
header object.

Cory
----- Original Message -----
From: "Yusuf Goolamabbas" <yu...@outblaze.com>
To: <so...@xml.apache.org>
Sent: Monday, August 21, 2000 2:33 AM
Subject: Specifying SOAPAction in call.invoke leads to SOAPException


> Hi, If I specific a string as the second parameter to call.invoke, I get
> the following error
>
> > Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> > msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> > be specified for every parameter.;
> > targetException=java.lang.IllegalArgumentException: The
> > 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> > specified for every parameter.]
> > at org.apache.soap.rpc.Call.invoke(Call.java:181)
> > at Geo.main(Geo.java:68)
>
> However, if I specifying a null string in Call.invoke(url,""). I get an
> the following response from the server which seems appropiate.
> I am at a loss as to how to specify the SOAPAction header field
>
> Any assistance would be appreciated
>
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Body><s:Fault><faultcode>s:Client</faultcode>
> <faultstring>Bad Request</faultstring>
> <detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
> </s:Body></s:Envelope>
>
> Regards, Yusuf
>


Re: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by Yusuf Goolamabbas <yu...@outblaze.com>.
Sorry to respond to my own post.

I am using a Java client [SOAP 2.0] to call a perl module using DM's
SOAP/Perl 0.25.

Is this an interoperability issue ?
Are there any plans for a SOAPAthon ala NFS's Connecthaton where vendors
get to trash out interoperability issues ?


> Hi, If I specific a string as the second parameter to call.invoke, I get
> the following error
> 
> > Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> > msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> > be specified for every parameter.;
> > targetException=java.lang.IllegalArgumentException: The
> > 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> > specified for every parameter.]
> > at org.apache.soap.rpc.Call.invoke(Call.java:181)
> > at Geo.main(Geo.java:68)
> 
> However, if I specifying a null string in Call.invoke(url,""). I get an
> the following response from the server which seems appropiate.
> I am at a loss as to how to specify the SOAPAction header field
> 
> Any assistance would be appreciated
> 
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Body><s:Fault><faultcode>s:Client</faultcode>
> <faultstring>Bad Request</faultstring>
> <detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
> </s:Body></s:Envelope>
> 
> Regards, Yusuf
> 

-- 
Yusuf Goolamabbas
yusufg@outblaze.com

Re: Specifying SOAPAction in call.invoke leads to SOAPException

Posted by Cory Isaacson <ci...@capita2.com>.
In the example code there is a note that this version of SOAP does not
support the action parameter. You probably could manually added it to the
header object.

Cory
----- Original Message -----
From: "Yusuf Goolamabbas" <yu...@outblaze.com>
To: <so...@xml.apache.org>
Sent: Monday, August 21, 2000 2:33 AM
Subject: Specifying SOAPAction in call.invoke leads to SOAPException


> Hi, If I specific a string as the second parameter to call.invoke, I get
> the following error
>
> > Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
> > msg=The 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must
> > be specified for every parameter.;
> > targetException=java.lang.IllegalArgumentException: The
> > 'http://www.w3.org/1999/XMLSchema-instance:type' attribute must be
> > specified for every parameter.]
> > at org.apache.soap.rpc.Call.invoke(Call.java:181)
> > at Geo.main(Geo.java:68)
>
> However, if I specifying a null string in Call.invoke(url,""). I get an
> the following response from the server which seems appropiate.
> I am at a loss as to how to specify the SOAPAction header field
>
> Any assistance would be appreciated
>
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
> <s:Body><s:Fault><faultcode>s:Client</faultcode>
> <faultstring>Bad Request</faultstring>
> <detail>Unrecognized SOAPAction header: ""</detail></s:Fault>
> </s:Body></s:Envelope>
>
> Regards, Yusuf
>