469,647 Members | 1,760 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,647 developers. It's quick & easy.

web services & firefox.

Hi,
I was curious if I could make my webservice work with firefox client
webservice functionality. (i got it to work with webservice.htc)

I am able to get firefox to see my serverside web service methods
(instantiate a proxy and alert proxy.MyMethod to tell its a valid
function), but when I submit to them, I either get, "Cannot convert
javascript arg 0" or "not enough arguments" javascript errors. I am
thinking that perhaps firefox does not understand auto generated WSDL.
I do not have much experience with WSDL and so perhaps someone has
attempted such feat....

FireFoxTest.aspx
<script>
var proxy = null;
var wsdl_uri = "http://localhost/webtesting/service.xml";
function run (aValue1, aValue2)
{
if (!proxy) {

var listener = {
onLoad: function (aProxy)
{
proxy = aProxy;
proxy.setListener(listener);
requestTranslation(aValue1, aValue2);
},
onError: function (aError)
{
alert(aError);
},

MyMathCallback : function (val)
{
alert('inside callback');
alert(val);
}
};

createProxy(listener);

}
else {
requestTranslation(aValue1, aValue2);
}
}
function createProxy(aCreationListener)
{
try {
var factory = new WebServiceProxyFactory();

factory.createProxyAsync(wsdl_uri, "MyMathSoap", "", true,
aCreationListener);

}
catch (ex) {
alert(ex);
}
}
function requestTranslation (value1, value2)
{
if (proxy) {
alert(proxy.Add);
proxy.Add();
}
else {
alert("Error: Proxy set up not complete!");
}
}
</script>
</head>
<body MS_POSITIONING="GridLayout">
firefox version<br><br>
<form id="Form1" method="post" runat="server">
<a href="javascript:;" onclick="run(2,7);">run</a>
WSDL:
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:s0="http://tempuri.org/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://tempuri.org/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://tempuri.org/">
<s:element name="Add">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="n1"
type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="n2"
type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="AddResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="AddResult"
type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetTest">
<s:complexType />
</s:element>
<s:element name="GetTestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1"
name="GetTestResult" type="s0:TestObject" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="TestObject">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Name"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Caption"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="InnerObject"
type="s0:TestInnerObject" />
</s:sequence>
</s:complexType>
<s:complexType name="TestInnerObject">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InnerValue"
type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</types>
<message name="AddSoapIn">
<part name="parameters" element="s0:Add" />
</message>
<message name="AddSoapOut">
<part name="parameters" element="s0:AddResponse" />
</message>
<message name="GetTestSoapIn">
<part name="parameters" element="s0:GetTest" />
</message>
<message name="GetTestSoapOut">
<part name="parameters" element="s0:GetTestResponse" />
</message>
<portType name="MyMathSoap">
<operation name="Add">
<input message="s0:AddSoapIn" />
<output message="s0:AddSoapOut" />
</operation>
<operation name="GetTest">
<input message="s0:GetTestSoapIn" />
<output message="s0:GetTestSoapOut" />
</operation>
</portType>
<binding name="MyMathSoap" type="s0:MyMathSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<operation name="Add">
<soap:operation soapAction="http://tempuri.org/Add"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="GetTest">
<soap:operation soapAction="http://tempuri.org/GetTest"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="MyMath">
<port name="MyMathSoap" binding="s0:MyMathSoap">
<soap:address location="http://localhost/webtesting/testwebservice.asmx"
/>
</port>
</service>
</definitions>
Jul 21 '05 #1
4 3899
Hi,

I'm interested in working on this. Can you post your whole HTML file? I
don't see below where you put the reference to webservice.htc. I put it in
a div tag that has an onresult attribute when working with IE. Thanks.
Ken.

--
Ken Dopierala Jr.
For great ASP.Net web hosting try:
http://www.webhost4life.com/default.asp?refid=Spinlight
If you sign up under me and need help, email me.

"sonic_soul" <sq**********@hotmail.com> wrote in message
news:f0**************************@posting.google.c om...
Hi,
I was curious if I could make my webservice work with firefox client
webservice functionality. (i got it to work with webservice.htc)

I am able to get firefox to see my serverside web service methods
(instantiate a proxy and alert proxy.MyMethod to tell its a valid
function), but when I submit to them, I either get, "Cannot convert
javascript arg 0" or "not enough arguments" javascript errors. I am
thinking that perhaps firefox does not understand auto generated WSDL.
I do not have much experience with WSDL and so perhaps someone has
attempted such feat....

FireFoxTest.aspx
<script>
var proxy = null;
var wsdl_uri = "http://localhost/webtesting/service.xml";
function run (aValue1, aValue2)
{
if (!proxy) {

var listener = {
onLoad: function (aProxy)
{
proxy = aProxy;
proxy.setListener(listener);
requestTranslation(aValue1, aValue2);
},
onError: function (aError)
{
alert(aError);
},

MyMathCallback : function (val)
{
alert('inside callback');
alert(val);
}
};

createProxy(listener);

}
else {
requestTranslation(aValue1, aValue2);
}
}
function createProxy(aCreationListener)
{
try {
var factory = new WebServiceProxyFactory();

factory.createProxyAsync(wsdl_uri, "MyMathSoap", "", true,
aCreationListener);

}
catch (ex) {
alert(ex);
}
}
function requestTranslation (value1, value2)
{
if (proxy) {
alert(proxy.Add);
proxy.Add();
}
else {
alert("Error: Proxy set up not complete!");
}
}
</script>
</head>
<body MS_POSITIONING="GridLayout">
firefox version<br><br>
<form id="Form1" method="post" runat="server">
<a href="javascript:;" onclick="run(2,7);">run</a>
WSDL:
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:s0="http://tempuri.org/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://tempuri.org/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://tempuri.org/">
<s:element name="Add">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="n1"
type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="n2"
type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="AddResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="AddResult"
type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetTest">
<s:complexType />
</s:element>
<s:element name="GetTestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1"
name="GetTestResult" type="s0:TestObject" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="TestObject">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Name"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Caption"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="InnerObject"
type="s0:TestInnerObject" />
</s:sequence>
</s:complexType>
<s:complexType name="TestInnerObject">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InnerValue"
type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</types>
<message name="AddSoapIn">
<part name="parameters" element="s0:Add" />
</message>
<message name="AddSoapOut">
<part name="parameters" element="s0:AddResponse" />
</message>
<message name="GetTestSoapIn">
<part name="parameters" element="s0:GetTest" />
</message>
<message name="GetTestSoapOut">
<part name="parameters" element="s0:GetTestResponse" />
</message>
<portType name="MyMathSoap">
<operation name="Add">
<input message="s0:AddSoapIn" />
<output message="s0:AddSoapOut" />
</operation>
<operation name="GetTest">
<input message="s0:GetTestSoapIn" />
<output message="s0:GetTestSoapOut" />
</operation>
</portType>
<binding name="MyMathSoap" type="s0:MyMathSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<operation name="Add">
<soap:operation soapAction="http://tempuri.org/Add"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="GetTest">
<soap:operation soapAction="http://tempuri.org/GetTest"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="MyMath">
<port name="MyMathSoap" binding="s0:MyMathSoap">
<soap:address location="http://localhost/webtesting/testwebservice.asmx" />
</port>
</service>
</definitions>

Jul 21 '05 #2
Hi, thanks for replying.

That was a complete call actually. firefox does not need a registration
with a div like msie does and it has native support for webservices
which means no .htc file is needed. its support is actually superior to
that of msie, because all you do is instantiate a proxy and call it as
if the webservice was a local object.

here is an example of a working firefox webservice:
http://www.mozilla.org/projects/webs...fish-wsdl/inde
x.html

just look at the javascript include.

the sample i posted gets to the point of seeing the service methods. it
just seems to give weird errors when those methods are actually called
(see error messages included in original post).

thank you!

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 21 '05 #3
Hi, thanks for replying.

That was a complete call actually. firefox does not need a
registration with a div like msie does and it has native support for
webservices which means no .htc file is needed. its support is
actually superior to that of msie, because all you do is instantiate a
proxy and call it as if the webservice was a local object.

here is an example of a working firefox webservice:
http://www.mozilla.org/projects/webs...sdl/index.html

just look at the javascript include.

the sample i posted gets to the point of seeing the service methods.
it just seems to give weird errors when those methods are actually
called (see error messages included in original post).

thank you!

On Mon, 4 Oct 2004 19:33:50 -0500, "Ken Dopierala Jr."
<kd*********@wi.rr.com> wrote:
Hi,

I'm interested in working on this. Can you post your whole HTML file? I
don't see below where you put the reference to webservice.htc. I put it in
a div tag that has an onresult attribute when working with IE. Thanks.
Ken.


Jul 21 '05 #4
Hi,

Okay I took a look and I'm getting the same result as you. It appears that
the problem revolves around Firefox's inability to conform to the standards
set forth by the W3C. Not surprising since they still have a handful of
security and SSL standards open in Bugzilla. Anyways, to get this to work
get rid of all your <s: tags, the ones that define elements and complex
types. Then in your <message tags remove the <part tags that rely on the <s
tags and define your arguments there instead. Basically you need to model
this:

http://www.xmethods.net/sd/2001/BabelFishService.wsdl

Then you should be all set. Good luck! Ken.

--
Ken Dopierala Jr.
For great ASP.Net web hosting try:
http://www.webhost4life.com/default.asp?refid=Spinlight
If you sign up under me and need help, email me.

"Rafal" <no@spam.com> wrote in message
news:0r********************************@4ax.com...
Hi, thanks for replying.

That was a complete call actually. firefox does not need a
registration with a div like msie does and it has native support for
webservices which means no .htc file is needed. its support is
actually superior to that of msie, because all you do is instantiate a
proxy and call it as if the webservice was a local object.

here is an example of a working firefox webservice:
http://www.mozilla.org/projects/webs...sdl/index.html
just look at the javascript include.

the sample i posted gets to the point of seeing the service methods.
it just seems to give weird errors when those methods are actually
called (see error messages included in original post).

thank you!

On Mon, 4 Oct 2004 19:33:50 -0500, "Ken Dopierala Jr."
<kd*********@wi.rr.com> wrote:
Hi,

I'm interested in working on this. Can you post your whole HTML file? I
don't see below where you put the reference to webservice.htc. I put it ina div tag that has an onresult attribute when working with IE. Thanks.
Ken.

Jul 21 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

5 posts views Thread by sonic_soul | last post: by
14 posts views Thread by Arne | last post: by
3 posts views Thread by Nathan Sokalski | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.