[jboss-user] [JNDI/Naming/Network] - javax.naming.CommunicationException - no security manager: R

altes-kind do-not-reply at jboss.com
Thu Jan 15 04:36:56 EST 2009


Hi!

I'm working on an application with a client and a server. I'm using JBoss 4.2 and Java 1.6.
On client side I bind an object to JNDI and try to lookup this object on server side.

CLIENT:

Object callback = ...;
  | Properties p = new Properties();
  | p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
  | p.put(Context.PROVIDER_URL, "jnp://localhost:1099");
  | Context context = new InitialContext(p);
  | context.bind (newBindName, callback); // Bind the callback object to JNDI

This is the Callback class:

public class Callback 
  |         implements BCServiceProxy, Serializable, Remote {
  | 
  | /**
  |   * Logger
  |   */
  | private static final Log log = LogFactory.getLog (Callback.class);
  | 
  | /**
  |   * The listener to be notified about new postboxentries
  |   */
  | private transient PostboxListener postboxListener;
  | 
  | /**
  |   * Constructor
  |   * @param postboxListener listener to be notified about new postboxentries
  |   */
  | public Callback (PostboxListener postboxListener) {
  |    this.postboxListener = postboxListener;
  | }
  | 
  | /**
  |   * @inheritDoc
  |   */
  | public String gotPostboxEntry (PostboxEntry postboxEntry) {
  |    String rc = null;
  |       if (postboxListener!=null) {
  |          rc = postboxListener.gotPostboxEntry (postboxEntry);
  |       }
  |    return rc;
  | }
  | 
  | }

After the binding I can see the object at the JNDIView in Global JNDI Namespace:
+- a5xk891BCServiceProxyPostboxTask 41232010727767 (class: de.postbox.proxies.bcservice.Callback)


SERVER:

The remote interface BCServiceProxy which the Callback class implements is in a JAR which is deyploed on the server.

public interface BCServiceProxy
  |         extends Serializable, Remote {
  | 
  |     /**
  |      * Called when the next postboxentry is known
  |      * @param postboxEntry the next postboxentry
  |      * @return String the id of the workitem, which should be delivered next.
  |      *          For null the order of the delivered postboxentries will not be modified
  |      * @throws RemoteException
  |      */
  |     public String gotPostboxEntry (PostboxEntry postboxEntry) throws RemoteException; 
  | 
  | }

Now I try to make the lookup on server side:

Properties p = new Properties();
  | p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
  | p.put(Context.PROVIDER_URL, "jnp://localhost:1099");
  | Context context = new InitialContext(p);
  | Object objref = context.lookup(requestorbindname);

This results in an exception: 
javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: No ClassLoaders found for: de.postbox.proxies.bcservice.Callback (no security manager: RMI class loader disabled)]

Why do I get this exception? 
Is it because I see the concrete class in JNDIView (see above). Shouldn't I see there something like this: +- a5xk891BCServiceProxyPostboxTask 41232010727767 (proxy: $Proxy99 implements interface de.postbox.services.bcservice.proxy.BCServiceProxy)?

Any help will be greatly appreciated!

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4202062#4202062

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4202062



More information about the jboss-user mailing list