[Soap-Python] rpclib + Django + Mono/.NET 2.0 Web Services

Benjamin Cardon bj.cardon at gmail.com
Mon Feb 27 18:21:09 CET 2012


Understood on point 1. I knew that's what was happening I guess, otherwise
I would have had no need to make that change. I'll blame it on the lateness
:) Rename to django_ seems kind of messy but at least it would work.

On point 2, I have forked and issued a pull request fort the Django
example. I apparently didn't add the MIT/BSD license headers, though.
Perhaps wait until I do that...

On point 3, this happens automatically when you do an "Add Web
Reference..." in Mono/VS. The resultant .cs file looks like this. (This is
slightly different from my previous example because I used the
http://127.0.0.1:8000/hello_world/?wsdl URL instead of service.wsdl.

http://pastie.org/3473322

On line 77 you can see that a partial class is generated that contains the
parameters of the function in question. On line 34, you can see that a
function is created that takes this 'say_hello' object as a parameter. This
is unfortunately not a pleasant way for this to be handled :( As a point of
reference, in Soaplib 0.8.2 this is not the functionality that existed.

I also tried to test with this new URL and got the same error message as it
tried to post with the ?wsdl tacked on the end.

[27/Feb/2012 11:14:34] "POST /hello_world/?wsdl HTTP/1.1" 403 2326

I'm not sure of a resolution to this as the functionality that .NET usually
has is that you don't provide a link to the wsdl and it discovers it from
the webservice automatically.

BJ

On Sun, Feb 26, 2012 at 11:54 PM, Burak Arslan
<burak.arslan at arskom.com.tr>wrote:

> On 02/27/12 07:09, Benjamin Cardon wrote:
>
>> First, to get Django and rpclib working together, I had to add this to
>> rpclib.server.django:
>>
>> from __future__ import absolute_import
>>
>> otherwise I got the error 'no module http'. I am on Ubuntu 11.10, Python
>> 2.7.2. Not sure why that was necessary.
>>
>>
> Hi there,
>
> That's python trying to import from rpclib.server.django module instead of
> the root django package.
>
> http://www.python.org/dev/**peps/pep-0328/<http://www.python.org/dev/peps/pep-0328/>
>
> the from __future__ import absolute_import hack doest not exist in python
> 2.4. I wonder if I should just rename the django module to django_ and be
> done with it.
>
>
>
>
>  Second, I have a django project called rpctest with an app called core
>> where the view is contained. Here is the code in my Django app.
>>
>> http://pastie.org/3469070
>>
>>
> That's exactly how it's supposed to work.
>
> Is it possible for you to put the full django project inside
> examples/django directory and issue a pull request? (make sure to add BSD
> or MIT license headers to avoid any confusion)
>
>  Third, I have a basic .NET 2.0 application in MonoDevelop with a Web
>> Reference pointing at 127.0.0.1:8000/hello_world/**service.wsdl<http://127.0.0.1:8000/hello_world/service.wsdl><
>> http://127.0.0.1:8000/hello_**world/service.wsdl<http://127.0.0.1:8000/hello_world/service.wsdl>>
>> and a .NET 2.0 web service that is hooked into it. Here is that code. I
>> named the service reference hwmt in my code.
>>
>>
>> http://pastie.org/3469090
>>
>> So on to problems?
>>
>> First problem, I cannot use the web service as functions. The advantage
>> to .NET SOAP is that you shouldn't have to do a bunch of object creation
>> and stuff to pass simple types but in this case I have to build an object
>> and define the types on it. Not very graceful I think.
>>
>> The bigger problem, though, is that when running the .NET webservice I
>> get a 403 error as it tries to access http://127.0.0.1:8000/hello_**
>> world/service <http://127.0.0.1:8000/hello_world/service>.
>>
>>
> The canonical way to get an rpclib-generated wsdl is:
> http://127.0.0.1:8000/hello_**world/?wsdl<http://127.0.0.1:8000/hello_world/?wsdl>but
> 127.0.0.1:8000/hello_world/.**wsdl<http://127.0.0.1:8000/hello_world/.wsdl>should work as well.
>
> You should try to make a http POST request to just
> http://127.0.0.1:8000/hello_**world/ <http://127.0.0.1:8000/hello_world/>
>
> Rpclib is tested to be WS-I compliant, so I don't think there should be
> any problems with .NET code calling rpclib code. However, AFAIK with .NET,
> you need to run the WSDL document through some tool that compiles
> definitions in the WSDL document to C# code. Did you already do that? Does
> that give any errors?
>
> hth,
> burak
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/soap/attachments/20120227/54ae4cda/attachment-0001.html>


More information about the Soap mailing list