logo       

Re: [NuSOAP+InfoPath] document/literal problem: msg#00110

php.nusoap.general

Subject: Re: [NuSOAP+InfoPath] document/literal problem

If you want to know the source of the problem, you will have to investigate,
not just guess.

The most direct thing you can do is capture the SOAP message being sent to the
service to determine whether or not it is correctly formed. You can do that by
having your PHP code write the $HTTP_RAW_POST_DATA to a file, or by using a
network tool like Windows Network Monitor or *nix tcpdump to capture the data
on the wire (assuming your client and server are on separate machines).

A less direct action is to write a client with another technology to test the
service. Using a NuSOAP sample as a template, you can have a client for almost
any service written in a couple of minutes.

Scott Nichol

Do not send e-mail directly to this e-mail address,
because it is filtered to accept only mail from
specific mail lists.

----- Original Message -----
From: "LEBUR Guillaume" <guillaume.lebur@xxxxxxxxxx>
To: "Scott Nichol" <snicholnews@xxxxxxxxxxxxxxx>;
<nusoap-general@xxxxxxxxxxxxxxxxxxxxx>
Sent: Wednesday, April 27, 2005 12:05 PM
Subject: RE: [Nusoap-general] [NuSOAP+InfoPath] document/literal problem


Hi Scott,

I modified the WSDL file as you said and it works a lot better.
InfoPath now recognizes the Web Service and I can bind elements of my InfoPath
form to parameters of the Web Service methods.

However, upon transmission of the form to the Web Service, I get the following
error :
"method 'article' not defined in service
<detail><soapVal xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="xsd:string"></soapVal></detail>"

I guess this time it's an error in NuSOAP rather than Infopath. Is it a known
bug ? Should I use another SOAP API than NuSOAP ?


Thanks for your help,

Guillaume

> -----Message d'origine-----
> De : nusoap-general-admin@xxxxxxxxxxxxxxxxxxxxx
> [mailto:nusoap-general-admin@xxxxxxxxxxxxxxxxxxxxx] De la
> part de Scott Nichol
> Envoyé : mercredi 27 avril 2005 17:45
> À : nusoap-general@xxxxxxxxxxxxxxxxxxxxx
> Objet : Re: [Nusoap-general] [NuSOAP+InfoPath]
> document/literal problem
>
> The .NET wsdl tool located your problem:
>
> <message name="publierRequest">
> <part name="parameters" type="tns:publier" /> </message>
> <message name="publierResponse">
> <part name="parameters" type="tns:publierResponse" /> </message>
>
> The types tns:publier and tns:publierResponse do not exist.
> The actual problem is, however, that the <part> elements for
> doc/lit methods should specify element instead of type, and
> there are elements with those names defined. You need
>
> <message name="publierRequest">
> <part name="parameters" element="tns:publier" />
> </message> <message name="publierResponse">
> <part name="parameters" element="tns:publierResponse" />
> </message>
>
> >>>>
> Every web page on the subject claims that "NuSOAP can handle
> both rpc/encoded and document/literal services" but so far I
> haven't found a single tutorial that explains clearly how to
> deal with the latter.
> <<<<
>
> There are a lot of aspects of NuSOAP for which there are no
> tutorials and no documentation. The NuSOAP community seems
> very much a group of individuals who want to get work done
> with their applications. Unlike something like Apache Axis
> (an open source SOAP implementation in Java), NuSOAP does not
> have significant commercial backing, which is how they are
> able to generate more documentation and tutorials (and code
> and features).
>
> >>>>
> Also, why the hell does Microsoft have to encourage the use
> of document/literal while the rest of the world is all about
> rpc/encoded ?
> <<<<
>
> Actually, Microsoft got the world of SOAP implementers to
> back off of rpc/encoded in favor of doc/lit and rpc/lit. The
> WS-I Basic Profile specifies the use of these two and
> deprecates rpc/encoded. Unfortunately, the original NuSOAP
> code was created for rpc/encoded, so it still has more
> complete support for that than doc/lit.
>
> Scott Nichol
>
> Do not send e-mail directly to this e-mail address, because
> it is filtered to accept only mail from specific mail lists.
> ----- Original Message -----
> From: "LEBUR Guillaume" <guillaume.lebur@xxxxxxxxxx>
> To: <nusoap-general@xxxxxxxxxxxxxxxxxxxxx>
> Sent: Tuesday, April 26, 2005 9:12 AM
> Subject: [Nusoap-general] [NuSOAP+InfoPath] document/literal problem
>
>
> Hi,
>
> I have a SOAP service page that looks like this (webservice.php) :
>
> <?php
> function publier($article) {
> ...
> <store the article in a database>
> ...
> $result = mysql_query($query);
> return $result;
> }
> require('nusoap/lib/nusoap.php');
> $server = new soap_server("desc.wsdl");
> $server->configureWSDL('cmsserver', 'urn:cms');
> $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)
> ? $HTTP_RAW_POST_DATA : '';
> $server->service($HTTP_RAW_POST_DATA);
> ?>
>
> the desc.wsdl file :
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <definitions
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
> xmlns:si="http://soapinterop.org/xsd"; xmlns:tns="urn:cms"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns="http://schemas.xmlsoap.org/wsdl/"; targetNamespace="urn:cms">
> <types><xsd:schema targetNamespace="urn:cms">
> <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"; />
> <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"; />
> <xsd:complexType name="article">
> <xsd:all>
> <xsd:element name="titre" type="xsd:string"/>
> <xsd:element name="texte" type="xsd:string"/>
> </xsd:all>
> </xsd:complexType>
> <xsd:complexType name="publierRequestType">
> <xsd:all>
> <xsd:element name="article" type="tns:article"/>
> </xsd:all>
> </xsd:complexType>
> <xsd:complexType name="publierResponseType">
> <xsd:all>
> <xsd:element name="return" type="xsd:boolean"/>
> </xsd:all>
> </xsd:complexType>
> <xsd:element name="publier" type="tns:publierRequestType"/>
> <xsd:element name="publierResponse" type="tns:publierResponseType"/>
> </xsd:schema>
> </types><message name="publierRequest"><part name="parameters"
> type="tns:publier" /></message><message name="publierResponse">
> <part name="parameters" type="tns:publierResponse" /></message>
> <portType name="cmsserverPortType"><operation name="publier"><input
> message="tns:publierRequest"/><output
> message="tns:publierResponse"/></operation></portType>
> <binding name="cmsserverBinding" type="tns:cmsserverPortType">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/><operation
> name="publier">
> <soap:operation soapAction="urn:cms#publier" style="document"/>
> <input><soap:body use="literal" namespace="urn:cms"/></input>
> <output><soap:body use="literal" namespace="urn:cms"/></output>
> </operation></binding>
> <service name="cmsserver"><port name="cmsserverPort"
> binding="tns:cmsserverBinding">
> <soap:address
> location="http://localhost_2/mini_cms/webservice.php"/></port>
> </service>
> </definitions>
>
> I'm trying to send data from an Infopath form to that web
> service, but I
> get an error message saying that Infopath couldn't understand the wsdl
> definition file.
> It fails both with desc.wsdl and webservice.php as the web service
> location in the Infopath dialog box.
>
> Is there something wrong in my wsdl file ? Did I miss something
> important ?
>
>
> Every web page on the subject claims that "NuSOAP can handle both
> rpc/encoded and document/literal services" but so far I
> haven't found a
> single tutorial that explains clearly how to deal with the latter.
> Also, why the hell does Microsoft have to encourage the use of
> document/literal while the rest of the world is all about
> rpc/encoded ?
> I thought Web services were the ultimate level of
> abstraction, that they
> were supposed to be as universal as possible. Actually it
> seems that all
> these messy W3C recommendations are there to confuse people
> rather than
> to provide a uniform way of doing things...
>
> As you see I'm sort of losing my nerve with all that SOAP/Web
> Services/Infopath stuff, so any help woud be greatly welcome :)
>
>
>
> Guillaume
>
>
>
>
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by: Tell us your software development plans!
> Take this survey and enter to win a one-year sub to SourceForge.net
> Plus IDC's 2005 look-ahead and a copy of this survey
> Click here to start! http://www.idcswdc.com/cgi-bin/survey?id5hix
> _______________________________________________
> Nusoap-general mailing list
> Nusoap-general@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/nusoap-general
>



-------------------------------------------------------
SF.Net email is sponsored by: Tell us your software development plans!
Take this survey and enter to win a one-year sub to SourceForge.net
Plus IDC's 2005 look-ahead and a copy of this survey
Click here to start! http://www.idcswdc.com/cgi-bin/survey?id5hix


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise