Re: [Clorb-devel] missing method for OP:DEF_KIND on CORBA:PROXY ?
Status: Alpha
Brought to you by:
lenst
From: Lennart S. <le...@ly...> - 2003-07-30 21:28:33
|
On m=E5ndag, jul 28, 2003, at 11:24 Europe/Stockholm, Eric Marsden = wrote: > I tried to use DOWNLOAD-IR to populate the local repository, and ran > into the following error: > > No matching method for the generic function=20 > #<standard-generic-function omg.org/features:def_kind (19) > = {489E8C39}>, > when called with arguments (#<omg.org/corba:proxy=20 > "IDL:omg.org/CORBA/Object:1.0" @hobart.laas.fr:39513>). > [Condition of type pcl::no-applicable-method-error] > Inspecting the OP:DEF_KIND generic function tells me that it has the > following methods: > > ,---- > | Its methods are: > [...] > | 19: def_kind ((clorb::obj omg.org/corba:irobject-proxy) &rest=20 > clorb::-args-) > `---- > Is a method missing somewhere? This is with CMUCL, and CLORB from > CVS, and I'm building using my own ASDF defsystem. I think you got everything loaded, the 19th method is the one that=20 should have been used, but the object is a generic proxy instead of a=20 proxy for the particular IR object. Unfortunately CLORB is a bit lax in=20= error reporting when unmarshalling object references. You get a generic=20= proxy if there is not proxy class for the object type or if the object=20= reference lacks type info (and there is no type info from the interface=20= returning the object.) I had a look at print-object for CORBA:Proxy uses object-id when it=20 should be using proxy-id. The "IDL:omg.org/CORBA/Object:1.0" is not the=20= ID that came with the reference. I can see at least two explanations 1. the interface repository returns object references with missing (or=20= incomplete) type info, or 2. the interface repository has objects of types not known to the CLORB=20= implementation, perhaps it implements a repository from some later=20 corba version. You could try to inspect the proxy object to see what the ID slot=20 contains or fix print-object to use proxy-id instead of object-id. Earlier versions of download-ir might have used Dynamic Invocation=20 instead of static stubs as the current version does. That would=20 probably have worked with any version of the interface repository.=20 Ironic :) You could also try loading make-proxies.lisp and see if it works then. //Lennart |