Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #73041 > unrolled thread
| Started by | 1stpoint@gmail.com |
|---|---|
| First post | 2014-06-09 08:45 -0700 |
| Last post | 2014-06-13 08:02 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to comp.lang.python
Suds 4.1 Beta Assertion Failure 1stpoint@gmail.com - 2014-06-09 08:45 -0700
Re: Suds 4.1 Beta Assertion Failure dieter <dieter@handshake.de> - 2014-06-10 07:50 +0200
Re: Suds 4.1 Beta Assertion Failure 1stpoint@gmail.com - 2014-06-12 12:52 -0700
Re: Suds 4.1 Beta Assertion Failure dieter <dieter@handshake.de> - 2014-06-13 08:02 +0200
| From | 1stpoint@gmail.com |
|---|---|
| Date | 2014-06-09 08:45 -0700 |
| Subject | Suds 4.1 Beta Assertion Failure |
| Message-ID | <5d97c876-edd8-40b4-b7e2-0f2f8ec6c52a@googlegroups.com> |
Hello group, I have been using Python suds to try to consume a web service. I am able to use tools like SOAPUI and it works but when I it in python I get Assertion Failure.
Here is my code
if __name__== '__main__':
from suds.client import Client
import logging
logging.basicConfig(filename="suds.log",level=logging.INFO)
logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)
obieeserver='http://hostname:port/analytics-ws/saw.dll/wsdl/v7'
rptRef='myReport'
paramRpt=''
client = Client(obieeserver)
sessionid = client.service['SAWSessionService'].logon('uid','pwd')
print 'sessionid=',sessionid
reportservice=client.service['ReportEditingService']
result=reportservice.generateReportSQL(rptRef, paramRpt, sessionid)
print 'result=',type(result)
Here is my output:
sessionid= fq3c0f0ec7hrql07fspk7fdu4esih16pp4eql9a
Traceback (most recent call last):
File "obieetest.py", line 90, in <module>
result=reportservice.generateReportSQL(rptRef, paramRpt, sessionid)
File "build\bdist.win32\egg\suds\client.py", line 542, in __call__
File "build\bdist.win32\egg\suds\client.py", line 602, in invoke
File "build\bdist.win32\egg\suds\client.py", line 651, in send
File "build\bdist.win32\egg\suds\client.py", line 688, in succeeded
File "build\bdist.win32\egg\suds\bindings\binding.py", line 151, in get_reply
File "build\bdist.win32\egg\suds\bindings\binding.py", line 182, in detect_fault
suds.WebFault: Server raised fault: 'Assertion failure: criteria at line 296 of /net/adcnas420/export/ifarm_base/ifarm_views/aime_bifndn_430300/bifndn/analytics_web/main/project/webformatengine/formatengine.cpp'
[toc] | [next] | [standalone]
| From | dieter <dieter@handshake.de> |
|---|---|
| Date | 2014-06-10 07:50 +0200 |
| Message-ID | <mailman.10942.1402379479.18130.python-list@python.org> |
| In reply to | #73041 |
1stpoint@gmail.com writes: > Hello group, I have been using Python suds to try to consume a web service. I am able to use tools like SOAPUI and it works but when I it in python I get Assertion Failure. > ... > suds.WebFault: Server raised fault: 'Assertion failure: criteria at line 296 of /net/adcnas420/export/ifarm_base/ifarm_views/aime_bifndn_430300/bifndn/analytics_web/main/project/webformatengine/formatengine.cpp' This is a message from the webserver. The "Assertion failure" happens there (in the server) and not on the client side. Usually, an "Assertion failure" is a programming error (of the component which checks the assertion). However, in some cases, other components (such as the client, in your case) might be directly responsible or have at least triggered the problem. I would approach as follows: Tell "suds" to log the outgoing messages; lock at those messages whether they are correct. If they are, contact the web service administrator and ask him for help.
[toc] | [prev] | [next] | [standalone]
| From | 1stpoint@gmail.com |
|---|---|
| Date | 2014-06-12 12:52 -0700 |
| Message-ID | <aa27fcb3-ad2b-4c39-a6f9-8fa96678b174@googlegroups.com> |
| In reply to | #73072 |
It turns out I was passing the parameters incorrectly to the generateReportSQL method.
This is what I had:
result=reportservice.generateReportSQL(rptRef, paramRpt, sessionid)
This is what works:
result=XMLservice.generateReportSQL({'reportPath':rptRef},sessionid)
I have another issue. When I make the call to return data apparently the result set is too big for suds and I get a MemoryError.
Here is my code snippet:
print 'executing SQL Query:',len(logicalSQL)
executionOptions={'async':False,'maxRowsPerPage':50,'refresh':True,'presentationInfo':False,'type':'Q1'}
XMLservice=obiclient.service['XmlViewService']
result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
When I run it I get:
executing SQL Query: 5968
Traceback (most recent call last):
File "C:\temp\obiee\obieetest.py", line 105, in <module>
result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
File "build\bdist.win32\egg\suds\client.py", line 542, in __call__
File "build\bdist.win32\egg\suds\client.py", line 602, in invoke
File "build\bdist.win32\egg\suds\client.py", line 643, in send
File "build\bdist.win32\egg\suds\transport\https.py", line 64, in send
File "build\bdist.win32\egg\suds\transport\http.py", line 79, in send
File "C:\Python27\lib\socket.py", line 358, in read
buf.write(data)
MemoryError: out of memory
[toc] | [prev] | [next] | [standalone]
| From | dieter <dieter@handshake.de> |
|---|---|
| Date | 2014-06-13 08:02 +0200 |
| Message-ID | <mailman.11050.1402639344.18130.python-list@python.org> |
| In reply to | #73236 |
1stpoint@gmail.com writes:
> ...
> I have another issue. When I make the call to return data apparently the result set is too big for suds and I get a MemoryError.
>
> Here is my code snippet:
> print 'executing SQL Query:',len(logicalSQL)
> executionOptions={'async':False,'maxRowsPerPage':50,'refresh':True,'presentationInfo':False,'type':'Q1'}
> XMLservice=obiclient.service['XmlViewService']
> result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
>
> When I run it I get:
> executing SQL Query: 5968
> Traceback (most recent call last):
> File "C:\temp\obiee\obieetest.py", line 105, in <module>
> result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
> File "build\bdist.win32\egg\suds\client.py", line 542, in __call__
> File "build\bdist.win32\egg\suds\client.py", line 602, in invoke
> File "build\bdist.win32\egg\suds\client.py", line 643, in send
> File "build\bdist.win32\egg\suds\transport\https.py", line 64, in send
> File "build\bdist.win32\egg\suds\transport\http.py", line 79, in send
> File "C:\Python27\lib\socket.py", line 358, in read
> buf.write(data)
> MemoryError: out of memory
There is not much "suds" can do with regard to this. In principle,
it could write to a temporary file - but its purpose is to present
the webservice result as a collection of Python objects - and
they, too, require memory in the same order.
Thus, you have the following options:
* learn how to limit the amount of data, the webservice provides
* give your system (its processes) more memory
* do not use "suds" but process the incoming data incrementally
(avoiding the build of the intermediate collection of Python objects).
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.python
csiph-web