I have actually been discussing this with Joe. The ModelGlue
ColdSpring loader needs to be updated to use the BeanFactoryUtils so
that your remote proxies can locate the factory. I don't know if he
has made the change in the ber of model glue yet, so I'll ask. Or
maybe I can just look! Good news is, he's committed to having MG +
ColdSpring work correctly for remoting, and also if necessary, I can
provide a patched loader.
On Mar 16, 2006, at 11:18 AM, Ken Dunnington wrote:
Thanks Chris, actually that does make perfect sense. I know about the
new-instance-on-every-call thing with remoting, I just wasn't
thinking. :) As evidenced by the fact that, yes, MG was in dev mode!
Oops.
I am, however, facing a different problem. The remote service makes a
call to BeanFactoryUtils.getDefaultFactory() in its setup() method
that asks for the default bean factory in application scope. Problem
is, there isn't one! Looking in BeanFactoryUtils.cfc I see that the
default key is "coldspring.beanfactory.root", so I tried putting an
Application.cfc in my remote objects folder and manually creating a
DefaultXmlBeanFactory and storing it in an application-scoped var
named "coldspring.beanfactory.root" which kind of worked... but not
really because of the classpaths. So, I did the same thing, but put it
in my main Application.cfm and that did work. I can access the methods
and browse the WSDL and all that good stuff.
Somehow I don't think this is quite right, though. :) Or maybe it is?
Obviously the remoting services don't know anything about MG or MG's
version of ColdSpring, so is it necessary for me to instantiate a
second copy of CS alongside MG? If so, how do I ensure that the remote
services can get at it (how do I change the name from
"coldspring.beanfactory.root"?)
Sorry for all the questions, I am really loving ColdSpring and am
trying to understand as much about it as possible. :)
- Ken
On 3/15/06, Chris Scott <[EMAIL PROTECTED]> wrote:
First question, is ModelGlue reloading on every request? Because if
so, the remoteProxyBeanFactory would be getting recreated for every
request, and will keep forgetting about the remoteProxy it creates.
Second, and this is odd. ColdSpring is not really creating an
instance off your remote service, it's just generating the file for
you (well, actually it does make an instance, but as far as a remote
client is concerned, it isn't). When you request that service through
remoting, or soap, or wsdl, a new instance of your remote service is
created for that connection. So there's always a kind of disconnect
between the instance of the service as far as the remote client is
concerned and the service that MG knows about. It's a brain teaser,
sorry, and I'm explaining badly because I'm tired!
-Chris