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