[Zope] ZopeProfiler issue
Pascal Peregrina
Pperegrina at Lastminute.com
Mon Jun 27 04:41:40 EDT 2005
Hi,
In a previous mail, I was asking if anyone had issues with ZopeProfiler and
Zope 2.8.
I have made many more tests and my issue is completely unrelated with Zope
2.8 (I got the same issue with Zope 2.7.6)
The issue has to deal with an XML-RPC call to a java service (using the
standard xmlrpclib module).
The code is (method of a class of my own):
def query(self):
from xmlrpclib import ServerProxy, loads, ProtocolError
try:
if self.protocol=='HTTP GET':
self.result=loads(urlopen(self.url).read())[0][0]
elif self.protocol=='XMLRPC':
self.result=getattr(ServerProxy(self.url),self.rpc_method_expr)(*self.params
)
except ProtocolError:
self.result=None
self.zeroconf_exception=1
self.log_exception()
except SocketError:
self.result=None
self.zeroconf_exception=1
self.log_exception()
except IOError:
self.result=None
self.zeroconf_exception=1
self.log_exception()
except:
self.result=None
self.log_exception()
This works fine with disabled profiler.
However, when I enable the profiler, I get this error :
Fault: <Fault 0: 'java.lang.Exception: RPC handler object "cat.getProducts"
not found and no default handler registered\n\tat
org.apache.xmlrpc.SelfDocumentingHandlerMapping.getHandler(Ljava.lang.String
;)Ljava.lang.Object;(Unknown Source)\n\tat
org.apache.xmlrpc.XmlRpcWorker.execute(Ljava.io.InputStream;Lorg.apache.xmlr
pc.XmlRpcContext;)[B(XmlRpcWorker.java:183)\n\tat
org.apache.xmlrpc.DocXmlRpcServer.execute(Ljava.io.InputStream;Lorg.apache.x
mlrpc.XmlRpcContext;)[B(Unknown Source)\n\tat
org.apache.xmlrpc.DocXmlRpcServer.execute(Ljava.io.InputStream;Ljava.lang.St
ring;Ljava.lang.String;)[B(Unknown Source)\n\tat
org.apache.xmlrpc.DocXmlRpcWebServer$Connection.run()V(Unknown Source)\n\tat
org.apache.xmlrpc.DocXmlRpcWebServer$Runner.run()V(Unknown Source)\n\tat
java.lang.Thread.run()V(Optimized Method)\n\tat
java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Optimized
Method)\n'>
I can reproduce that error if I omit (*self.params) on that line :
self.result=getattr(ServerProxy(self.url),self.rpc_method_expr)(*self.params
)
But when I add some logging, self.params looks fine.
Changing that line into :
self.result=apply(getattr(ServerProxy(self.url),self.rpc_method_expr),self.p
arams)
Gives the same error.
I also tried hardcoding the arguments, and I still get the same issue !
I don't know what to do, I really need to profile my Zope instance.
So any suggestion would be highly appreciated...
Thanks.
Pascal
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
More information about the Zope
mailing list