This class was rewritten so that is only works with a local kernel. Rewriting it for a local kernel vastly simplified the code and make is more accessible for new users to help with the console, and it is expected that the for the near future the console will always be local. If you need these features from a remote client, I suggest you first take a look at what is available via a standard remote JMX connection. You can browse the MBeanServer using jconsole in Java5.

In the future, when we need a to access the kernel remotely for the kernel, I expect us to use a remote pojo technology like lingo.codehaus.org.

-dain

On Apr 27, 2006, at 12:08 AM, Vamsavardhana Reddy wrote:

Hi Aron,

The code chunk from my first e-mail runs fine with G1.0 . Some of the recent changes might have broken the KernelDelegate. I will try to create a test client and post it to the dev-list.

Thanks,
Vamsi

On 4/25/06, Aaron Mulder <[EMAIL PROTECTED]> wrote: Well, maybe I spoke too soon. After thinking more about it, I guess
there are two options:

1) Create your own GBean to run on the server side, where your client
gives simple commands and the GBean does all the work interfacing with
the server components, so that there's no serialization involved to
return a J2EEServer, etc.

2) It may be that it's not as hard as I'm imagining to convert GBean
arguments and return types to AbstractNames and vice versa in the
server and the proxies.  Can you post a simple test client that gets
the servers from a domain or whatever and curently blows up?  That
would make it easier to evaluate this kind of change.

Thanks,
     Aaron

On 4/25/06, Aaron Mulder <[EMAIL PROTECTED]> wrote:
> I don't think there's going to be a fix for 1.1 -- if a method returns > a GBean we don't have a way to serialize it to the client. For 1.2 I
> think we can work some magic in the proxies, and/or switch to a
> different protocol altogether.
>
> Thanks,
>     Aaron
>
> On 4/25/06, Vamsavardhana Reddy < [EMAIL PROTECTED]> wrote:
> > Hi,
> >
> >  I am running the following piece of code.
> >
> >          KernelManagementHelper mgr =
> > KernelManagementHelper.getRemoteKernelManager ("localhost",
> > "system", "manager");
> >          J2EEDomain domain = mgr.getDomains()[0];
> >          String[] servers = domain.getServers();
> >           System.out.println(servers[0]);
> >          J2EEServer[] j2eeServers = domain.getServerInstances();
> >          System.out.println(j2eeServers[0]);
> >
> > domain.getServers() runs fine, whereas, domain.getServerInstances() throws > > an exception. Please suggest a fix or a workaround for this problem.
> >
> >  -Vamsi
> >  ----------------------------------------------
> > java.rmi.UnmarshalException: error unmarshalling return; nested exception
> > is:
> >      java.io.WriteAbortedException: writing aborted;
> > java.io.NotSerializableException:
> > org.apache.geronimo.management.geronimo.J2EEServer$ $EnhancerByCGLIB$$d620c0d0
> >      at
> > sun.rmi.server.UnicastRef.invoke(UnicastRef.java:164)
> >      at
> > javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown
> > Source)
> >      at
> > mx4j.remote.rmi.ClientInvoker.invoke(ClientInvoker.java:207)
> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > Method)
> >      at
> > sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
> >      at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
> >      at java.lang.reflect.Method.invoke(Method.java:324)
> >      at mx4j.remote.ClientProxy.invoke(ClientProxy.java:32)
> >      at
> > mx4j.remote.rmi.ClientUnmarshaller.chain (ClientUnmarshaller.java:65)
> >      at
> > mx4j.remote.rmi.ClientUnmarshaller.invoke (ClientUnmarshaller.java:54)
> >      at $Proxy0.invoke(Unknown Source)
> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > Method)
> >      at
> > sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
> >      at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
> >      at java.lang.reflect.Method.invoke(Method.java:324)
> >      at mx4j.remote.ClientProxy.invoke(ClientProxy.java:32)
> >      at
> > mx4j.remote.rmi.ClientExceptionCatcher.invoke (ClientExceptionCatcher.java:40)
> >      at $Proxy0.invoke(Unknown Source)
> >      at
> > org.apache.geronimo.system.jmx.KernelDelegate.invokeKernel (KernelDelegate.java:880)
> >      at
> > org.apache.geronimo.system.jmx.KernelDelegate.getAttribute (KernelDelegate.java :485)
> >      at
> > org.apache.geronimo.kernel.basic.KernelGetAttributeInvoker.invoke (KernelGetAttributeInvoker.java:36)
> >      at
> > org.apache.geronimo.system.jmx.JMXProxyMethodInterceptor.intercept (JMXProxyMethodInterceptor.java:89)
> >      at
> > org.apache.geronimo.management.geronimo.J2EEDomain$ $EnhancerByCGLIB$$45e3ccef.getServerInstances(<generated>)
> >      at PeekRemoteKernel.main (PeekRemoteKernel.java:19)
> >  Caused by: java.io.WriteAbortedException: writing aborted;
> > java.io.NotSerializableException:
> > org.apache.geronimo.management.geronimo.J2EEServer$ $EnhancerByCGLIB$$d620c0d0
> >      at
> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1278)
> >      at
> > java.io.ObjectInputStream.readArray(ObjectInputStream.java:1603)
> >      at
> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
> >      at
> > java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
> >      at
> > sun.rmi.server.UnicastRef.unmarshalValue (UnicastRef.java:297)
> >      at
> > sun.rmi.server.UnicastRef.invoke(UnicastRef.java:146)
> >      ... 23 more
> >  Caused by: java.io.NotSerializableException:
> > org.apache.geronimo.management.geronimo.J2EEServer$ $EnhancerByCGLIB$$d620c0d0
> >      at java.io.ObjectOutputStream.writeObject0(Unknown
> > Source)
> >      at java.io.ObjectOutputStream.writeArray(Unknown
> > Source)
> >      at java.io.ObjectOutputStream.writeObject0 (Unknown
> > Source)
> >      at java.io.ObjectOutputStream.writeObject(Unknown
> > Source)
> >      at sun.rmi.server.UnicastRef.marshalValue(Unknown
> > Source)
> >      at sun.rmi.server.UnicastServerRef.dispatch(Unknown
> > Source)
> >      at sun.rmi.transport.Transport$1.run(Unknown Source)
> >      at java.security.AccessController.doPrivileged(Native
> > Method)
> >      at sun.rmi.transport.Transport.serviceCall(Unknown
> > Source)
> >      at
> > sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
> > Source)
> >      at
> > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
> > Source)
> >      at java.lang.Thread.run(Unknown Source)
> >
> >
>


Reply via email to