Could not call SOAP procedure when procedure name contains '_' (underscore) character

RESOLVED INCOMPLETE

Status

()

Core
Web Services
RESOLVED INCOMPLETE
12 years ago
7 years ago

People

(Reporter: Fabien Chevalier, Unassigned)

Tracking

({testcase})

Trunk
x86
Linux
testcase
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

12 years ago
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8b4) Gecko/20050801 Firefox/1.0+
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8b4) Gecko/20050801 Firefox/1.0+

When i I create a WebServiceProxy object, I can only call methods that have no
underscore, which means that (let serviceproxy be a WebServiceProxy object, and
a adhoc wsdl file with two operations : foobar and foo_bar):
  - calling serviceproxy.foobar() works
  - calling serviceproxy.foo_bar() fails with an error (see above)

Reproducible: Always

Steps to Reproduce:
1.Download the nsps.wsdl and wsdl.html files (attached with this bug report),
put them in /tmp
2.go to file:///tmp/wsdl.html
3.Enter a string in the Line Edit, press 'Send string value' button

Actual Results:  
Message Box is displayed  : TypeError: proxy.user_search is not a function

Expected Results:  
Do the SOAP Call, and actually fail because the server is not responding...
Unless you have SOAP server in front, in this case it should just work.
(Reporter)

Comment 1

12 years ago
Created attachment 191238 [details]
WSDL file for test case
(Reporter)

Comment 2

12 years ago
Created attachment 191239 [details]
HTML file for test case

Updated

12 years ago
Keywords: testcase
(Reporter)

Updated

12 years ago
Component: General → Web Services
Product: Firefox → Core
Version: unspecified → Trunk
Assignee: nobody → web-services
QA Contact: general → doronr

Comment 3

11 years ago
note that wsdl/soap is on its way out of the codebase, so this will be probably wontfixed.

Comment 4

11 years ago
This just came up in the mozilla.dev.tech.xml newsgroup. christopherbare@gmail.com pointed this out and noted that replacing the single underscores with '_005f' in his JS code fixes the problem. My reply to him (and his original quoted message) follows...


FWIW, This is working as designed. The issue is that arbitrary XML 'names' need to be mapped to legal JS 'identifiers' in and easily reversible way. I remember discussing this with Vidur at the time (he did most of this work). We agreed to do something *very* simple and just use a single underscore as an escape character. We were aware of the downside, but decided to do it this way anyway. This was 5+ years ago and this Soap support for mozilla was a very experimental project.

The code is in the two static methods:

WSPFactory::C2XML and WSPFactory::XML2C at http://lxr.mozilla.org/seamonkey/source/extensions/webservices/proxy/src/wspfactory.cpp#209

I can imagine other escaping strategies (e.g. a multi-character escape indicator). Of course, changing this now would break any code that *expects* the current behavior.

As to bug filing...  If you go to the main bugzilla page (https://bugzilla.mozilla.org) and search for bugs with "wsdl" in the subject line you'll get a list of some of the bugs and feature requests related to this module. It appears that bugs are filed as: Product: Core, Component: Web Services.

John.

cbare wrote:
> I'm trying to use the WebServiceProxyFactory to access a public web
> service at:
>
> http://soap.genome.jp/KEGG.wsdl.
>
> I'm seeing some weird behavior, which is either a bug or I don't
> understand what's going on. The WSDL for this service defines a bunch
> of methods, among them: get_genes_by_organism.
>
>     <operation name="get_genes_by_organism">
>       <input message="typens:get_genes_by_organismRequest"/>
>       <output message="typens:get_genes_by_organismResponse"/>
>     </operation>
>
>
> The trouble is, the proxy generated by the factory ends up with names
> like this: get_005fgenes_005fby_005forganism.
>
> Suspiciously, 0x005f is unicode for the underscore character. Maybe the
> underscores are messing things up? Or maybe the WSDL is in an
> unexpected character encoding?
>
> It works if I call the methods with the munged up names, but it's not
> pretty. Anyone seen similar problems? Is there a good place to file a
> bug report?
>
> Thanks,
>
> -Chris
Assignee: web-services → nobody
QA Contact: doronr → web-services
We dropped SOAP.
Status: UNCONFIRMED → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.