Closed Bug 302985 Opened 19 years ago Closed 14 years ago

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

Categories

(Core Graveyard :: Web Services, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: fchevalier, Unassigned)

Details

(Keywords: testcase)

Attachments

(2 files)

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.
Keywords: testcase
Component: General → Web Services
Product: Firefox → Core
Version: unspecified → Trunk
Assignee: nobody → web-services
QA Contact: general → doronr
note that wsdl/soap is on its way out of the codebase, so this will be probably wontfixed.
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
Closed: 14 years ago
Resolution: --- → INCOMPLETE
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: