I need to be able to get CORBA clients talking to Sessions beans.
So I have written a v simple session bean and corba client to test it out, I am using 
Jacorb for the client also in this test.
Unfortunately I do not seem to be able to call the methods on the remote interface.
I am running JBOSS 3.2.3 and my client is using Jacorb 2.1
The error I am getting from jacorb on my client when I run it, is this...

anonymous wrote : 
  | 
  | JacORB V 2.1, www.jacorb.org
  |         (C) Gerald Brose, XTRADYNE Technologies/FU Berlin, 16-Feb-2004
  | [jacorb.orb.intercept] INFO : InterceptorManager started with 0 SIs, 0 CIs and 1 
IORIs
  | [jacorb.giop] INFO : ClientConnectionManager: created new conn to target 
192.168.0.64:3528
  | [jacorb.iiop.conn] INFO : Connected to 192.168.0.64:3528 from local port 35513
  | [jacorb.giop] INFO : ClientConnectionManager: found conn to target 
192.168.0.64:3528
  | org.omg.CORBA.BAD_PARAM: Narrow failed
  |         at com.ssl.GoodDayHelper.narrow(GoodDayHelper.java:65)
  |         at callbackClient.main(callbackClient.java:56)
  | 

My ejb's do seem to deploy okay and I get the following out of JBOSS when they are 
deployed

anonymous wrote : 
  | 12:51:46,631 INFO  [MainDeployer] Starting deployment of package: 
file:/opt/jboss-3.2.3/server/all/deploy/Hello.jar
  | 12:51:46,993 INFO  [EjbModule] Deploying GoodDay
  | 12:51:47,232 INFO  [AGoodDay] CORBA interface repository for AGoodDay: 
IOR:000000000000002149444C3A6F6D672E6F72672F434F5242412F5265706F7369746F72793A312E3000000000000000020000000000000068000102000000000D3139322E3136382E302E363400000DC8000000114A426F73732F49522F41476F6F64446179000000000000020000000000000008000000004A414300000000010000001C00000000000100010000000105010001000101090000000105010001000000010000002C0000000000000001000000010000001C00000000000100010000000105010001000101090000000105010001
  | 12:51:47,237 INFO  [AGoodDay] EJBHome reference for AGoodDay:
  | 
IOR:0000000000000029524D493A636F6D2E73736C2E476F6F64446179486F6D653A30303030303030303030303030303030000000000000000200000000000000A6000102000000000D3139322E3136382E302E363400000DC80000001D4A426F73732F454A42486F6D65262541476F6F644461792FACED000570000000000000030000000000000008000000004A414300000000010000001C00000000000100010000000105010001000101090000000105010001000000190000002A0000000000000022687474703A2F2F434354563A383038332F576562434C5B41476F6F644461795D2F000000000000010000005E0000000000000002000000010000001C00000000000100010000000105010001000101090000000105010001000000190000002A0000000000000022687474703A2F2F434354563A383038332F576562434C5B41476F6F644461795D2F00
  | 12:51:47,239 INFO  [AGoodDay] Home IOR for GoodDay bound to iiop/AGoodDay in JNP 
naming service
  | 12:51:47,241 INFO  [AGoodDay] Home IOR for GoodDay bound to AGoodDay in CORBA 
naming service
  | 12:51:47,241 INFO  [StatelessSessionInstancePool] Started 
jboss.j2ee:jndiName=AGoodDay,plugin=pool,service=EJB
  | 12:51:47,241 INFO  [StatelessSessionContainer] Started 
jboss.j2ee:jndiName=AGoodDay,service=EJB
  | 12:51:47,242 INFO  [EjbModule] Started 
jboss.j2ee:module=Hello.jar,service=EjbModule
  | 12:51:47,242 INFO  [EJBDeployer] Deployed: 
file:/opt/jboss-3.2.3/server/all/deploy/Hello.jar
  | 12:51:47,248 INFO  [MainDeployer] Deployed package: 
file:/opt/jboss-3.2.3/server/all/deploy/Hello.jar
  | 

I have included my code below in case it helps.



My client code is 


  | import org.omg.CORBA.ORB;
  | 
  | import java.util.Properties;
  | import org.omg.CosNaming.NamingContext;
  | import org.omg.CosNaming.NamingContextHelper;
  | import org.omg.CosNaming.NameComponent;
  | import org.jacorb.orb.util.CorbaLoc;
  | /**
  |  *
  |  * @author  geoff
  |  * @version
  |  */
  | public class callbackClient {
  |     
  |     /** Creates new callbackClient */
  |     public callbackClient() {
  |     }
  |     
  |     /**
  |      * @param args the command line arguments
  |      */
  |     public static void main(String args[]) {
  |         
  |         try {
  |             // setting system properties is necessary in order to use this ORB in 
JDK
  |             Properties props = System.getProperties();
  |             props.put("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
  |             props.put("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORB");
  |             System.setProperties(props);
  |              ORB orb = ORB.init(args, props);
  |               
  |             // the client will use Naming Service
  |             org.omg.CORBA.Object ns = 
orb.resolve_initial_references("NameService");
  |             if (ns == null)
  |                 throw new RuntimeException();
  |             NamingContext nc = NamingContextHelper.narrow(ns);
  |             if (nc == null)
  |                 throw new RuntimeException();
  |             
  |             // resolve names with the Naming Service
  |             String[] client_name_hierarchy = new String [] {"AGoodDay", ""};
  |             NameComponent[] aName = new NameComponent[client_name_hierarchy.length 
/ 2];
  |             for (int i=0; i<(client_name_hierarchy.length / 2); i++) {
  |                 aName = new NameComponent();
  |                 aName.id = client_name_hierarchy[i*2];
  |                 aName.kind = client_name_hierarchy[i*2+1];
  |             }
  |             org.omg.CORBA.Object obj = nc.resolve(aName);
  |             com.ssl.GoodDay srv = com.ssl.GoodDayHelper.narrow(obj);
  |             if (srv == null)
  |                 throw new RuntimeException();
  |             srv.requestHello();
  |             System.out.println("AFTER METHOD CALL The method should call and 
display something in the server output");
  |             // add your client code here
  | 
  |         } catch (Exception ex) {
  |             ex.printStackTrace();
  |         }
  |     }
  | }
  | 

the idl is 


  | module com{
  |     module ssl{
  |                interface GoodDay {
  |                         public void requestHello();
  |                };
  | 
  |       };
  | };
  | 

I have added a jboss.xml file so that it can use IIOP



  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <jboss>
  |   <enterprise-beans>
  |     <session>
  |       <ejb-name>GoodDay</ejb-name>
  |       <jndi-name>AGoodDay</jndi-name>
  |       <configuration-name>Standard Stateless SessionBean</configuration-name>
  |       <invoker-bindings>
  |            <invoker>
  |              <invoker-proxy-binding-name>iiop</invoker-proxy-binding-name>
  |            </invoker>
  |       </invoker-bindings>
  |     </session>
  |   </enterprise-beans>
  | </jboss>
  | 

and my ejb-jar fil is

  | <?xml version="1.0"?>
  | 
  | <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 
1.1//EN'
  |                          'http://alpha-am02-mx01/dtd/ejb-jar_1_1.dtd'>
  | 
  | <ejb-jar>
  |   <enterprise-beans>
  |     <session>
  |       <ejb-name>GoodDay</ejb-name>
  |            <home>com.ssl.GoodDayHome</home>
  |       <remote>com.ssl.GoodDay</remote>
  |       <ejb-class>com.ssl.GoodDayBean</ejb-class>
  | 
  |       <session-type>Stateless</session-type>
  | 
  |       <transaction-type>Container</transaction-type>
  |     </session>
  |   </enterprise-beans>
  | 
  |   <assembly-descriptor>
  |     <container-transaction>
  |       <method>
  |         <ejb-name>GoodDay</ejb-name>
  |     <method-intf>Remote</method-intf>
  |         <method-name>*</method-name>
  |       </method>
  |       <trans-attribute>Required</trans-attribute>
  |     </container-transaction>
  |   </assembly-descriptor>
  | </ejb-jar>
  | 

My ejb files are

goodDay

  | package com.ssl;
  | import java.rmi.RemoteException;
  | import javax.ejb.EJBObject;
  | 
  | 
  | /**
  |  *Created Jun 2 Wed, 2004  11:2:46 AM
  |  *Code generated by the NetBeans for java EJB Module
  |  [EMAIL PROTECTED] geoff
  |  */
  | 
  | 
  | public interface GoodDay extends EJBObject {
  | 
  |     public void requestHello() throws RemoteException;
  | }
  | 

GoodDayHome

  | package com.ssl;
  | import java.rmi.RemoteException;
  | import javax.ejb.EJBObject;
  | 
  | 
  | /**
  |  *Created Jun 2 Wed, 2004  11:2:46 AM
  |  *Code generated by the NetBeans for java EJB Module
  |  [EMAIL PROTECTED] geoff
  |  */
  | 
  | 
  | public interface GoodDay extends EJBObject {
  | 
  |     public void requestHello() throws RemoteException;
  | }
  | 

and my implementation class is
GoodDayBean

  | package com.ssl;
  | import javax.ejb.CreateException;
  | import javax.ejb.SessionBean;
  | import javax.ejb.SessionContext;
  | import java.rmi.RemoteException;
  | /**
  |  *Created Jun 2 Wed, 2004  11:2:46 AM
  |  *Code generated by the NetBeans for java EJB Module
  |  [EMAIL PROTECTED] geoff
  |  */
  | 
  | 
  | public class GoodDayBean implements SessionBean {
  | 
  |     private  SessionContext sessionContext = null;
  | 
  |         public void requestHello() throws RemoteException
  |         {
  |             System.out.println("The cleient has finally manged to call this");
  |             //return "Hello, this is a stateless bean access through CORBA";
  |         }
  |     public void  ejbCreate() throws CreateException {
  |             
  |     }
  | 
  |     public void  ejbActivate() {
  |     }
  | 
  |     public void  ejbPassivate() {
  |     }
  | 
  |     public void  ejbRemove() {
  |     }
  | 
  |     public void setSessionContext(SessionContext sessionCtx){
  | 
  |             this.sessionContext = sessionCtx;
  | 
  |     }
  | 
  | }
  | 



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

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



-------------------------------------------------------
This SF.Net email is sponsored by the new InstallShield X.
>From Windows to Linux, servers to mobile, InstallShield X is the one
installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to