[jboss-user] [JNDI/Naming/Network] - lookup EJB3-beans on JBoss from Eclipse RAP

sandello do-not-reply at jboss.com
Mon Nov 10 06:50:35 EST 2008


I have a project consists two parts: RAP-based web UI part and
EJB3-server part. Second path consists 23 EJB3-application. All works
fine. The UI-part successfully interact with server-part.

Now I need to add some functionality which interact with other ejb3
application on the same server. I create a simple action:

new Action(){
  |       @Override
  |       public void run() {
  |         Logger debugger = Logger.getLogger(this.getClass()); //Log4j logger
  |         String DEBUG_STR = "run: ";
  |         debugger.debug(DEBUG_STR + "start");
  |         debugger.debug(DEBUG_STR + "security manager " +
  | System.getSecurityManager());
  |         Class<?> forName;
  |         try {
  |           forName =
  | Class.forName("com.company.docprint.as.mngrs.DocTypeManager");
  |           debugger.debug(DEBUG_STR + forName);
  |           forName =
  | Class.forName("com.company.docprint.as.mngrs.DocTypeManagerBean");
  |           debugger.debug(DEBUG_STR + forName);
  |           forName = Class.forName("org.jboss.ejb3.JBossProxy");
  |           debugger.debug(DEBUG_STR + forName);
  |           forName = Class.forName("javax.ejb.EJBObject");
  |           debugger.debug(DEBUG_STR + forName);
  |           forName = Class.forName("javax.ejb.EJBAccessException");
  |           debugger.debug(DEBUG_STR + forName);
  |           
  |           Properties props = new Properties();
  |           props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.NamingContextFactory");
  |           props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
  |           props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
  | 
  |           Context ctx = new InitialContext(props);
  |           Context c0 = (Context) ctx.lookup("DocManagerBean/remote"); //throws exception
  |           // Context c0 = (Context) ctx.lookup("AbonentServer/remote"); // works fine
  |         }
  |         catch (Exception e) {
  |           debugger.debug(DEBUG_STR + e, e);
  | 
  |         }
  |         debugger.debug(DEBUG_STR + "stop");
  |       }
  | 
  | }
  | 
  | 
A exception occurs when I try to run this code fragment from
RAP-application.
If I change

Context c0 = (Context) ctx.lookup("DocManagerBean/remote");
  | 
to

  | Context c0 = (Context) ctx.lookup("AbonentServer/remote");
  | 
all works fine. The "AbonentServer" is the EJB3 from old server-part.
If I run the code fragment from JUnit test case - all works fine.

Exception:

  | javax.naming.CommunicationException [Root exception is
  | java.lang.ClassNotFoundException:
  | com.company.docprint.as.mngrs.DocManager (no security manager: RMI class
  | loader disabled)]
  | javax.naming.CommunicationException [Root exception is
  | java.lang.ClassNotFoundException:
  | com.company.docprint.as.mngrs.DocManager (no security manager: RMI class
  | loader disabled)]
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:730)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:589)
  | 	at
  | com.company.project.ui.abonent.AbonentListView$4.run(AbonentListView.java:118)
  | 	at org.eclipse.jface.action.Action.runWithEvent(Action.java:500)
  | 	at
  | org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
  | 	at
  | org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:497)
  | 	at
  | org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:449)
  | 	at
  | org.eclipse.swt.internal.widgets.UntypedEventAdapter.dispatchEvent(UntypedEventAdapter.java:313)
  | 	at
  | org.eclipse.swt.internal.widgets.UntypedEventAdapter.widgetSelected(UntypedEventAdapter.java:80)
  | 	at
  | org.eclipse.swt.events.SelectionEvent.dispatchToObserver(SelectionEvent.java:174)
  | 	at org.eclipse.rwt.internal.events.Event.processEvent(Event.java:44)
  | 	at org.eclipse.swt.events.TypedEvent.processEvent(TypedEvent.java:115)
  | 	at org.eclipse.swt.events.TypedEvent.executeNext(TypedEvent.java:155)
  | 	at
  | org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.readAndDispatch(RWTLifeCycle.java:241)
  | 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:682)
  | 	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2388)
  | 	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2347)
  | 	at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2200)
  | 	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:425)
  | 	at
  | org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
  | 	at
  | org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:408)
  | 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157)
  | 	at com.company.project.ui.rap.Application.createUI(Application.java:15)
  | 	at
  | org.eclipse.rwt.internal.lifecycle.EntryPointManager.createUI(EntryPointManager.java:92)
  | 	at
  | org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:228)
  | 	at
  | org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:116)
  | 	at java.lang.Thread.run(Thread.java:595)
  | Caused by: java.lang.ClassNotFoundException:
  | com.company.docprint.as.mngrs.DocManager (no security manager: RMI class
  | loader disabled)
  | 	at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:531)
  | 	at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
  | 	at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)
  | 	at
  | sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
  | 	at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1500)
  | 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1463)
  | 	at
  | java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
  | 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
  | 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
  | 	at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
  | 	at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:654)
  | 	... 26 more
  | 

Environment:
Eclipse 3.4.1
RAP 1.2M2
Jboss 4.2.1
OS Fedora Linux 8  x86_64
Java 1.5.0_14 x86_64

Where is the problem? Why I can connect to one EJB but can't to other?


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

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



More information about the jboss-user mailing list