Hi,

I am using JacORB only on the client, the server was Yoko. If I
generate the stubs with JacORBs tool it works ok - I can comunicate
with service implemented in Yoko sucessfuly.

I have other problem: there is no problem to work with JacORB client
and Yoko service. The corbaloc protocol works great but I want to try
the other direction: JacORB service and Yoko/CXF client. The problem
is simple: I am not able to create JacORB service exposed via corbaloc
protocol. I do not how to do it.

I am trying to use IOR file now (and pass it to Yoko client with
"file:./my_ior.txt"), I hope it will be possible. But in near future I
will need to use corbaloc protocol...

LZ

2007/7/20, Darren Middleman <[EMAIL PROTECTED]>:
Hi Lukas,

Just a quick update.  I'm still working on trying to reproduce the BAD_PARAM
exception using JacORB.  So far I have yet to see it and I've also
successfully managed to get a JacORB client to talk to a Yoko server.

I'll continue to try and reproduce the exception tomorrow.

Cheers,
Darren


On 7/19/07, Darren Middleman < [EMAIL PROTECTED]> wrote:
> Hi Lukas,
>
> I've done the same, using the Sun IDLJ compiler to generate the stubs.  In
theory, this shouldn't make a difference, since most IDL compilers for Java
should produce portable code (part of the IDLToJava language mapping).
>
> I've tried things here using the Yoko ORB and I'm not seeing any issue so
now I'm going to move onto trying to set things up with JacORB.  Just a
quick question...are you using JacORB for just the client or are have you
changed the configuration for the Yoko binding on the server side to use the
JacORB ORB classes as well?
>
> It's interesting to see though that you are still seeing the same
exception when doing JacORB Client -> JacORB server.  I'll also give this a
try to see if I can figure out what is happening.
>
>
> Cheers,
> Darren
>
>
> On 7/19/07, Lukas Zapletal < [EMAIL PROTECTED]> wrote:
> > Thanks. I have generated my stubs with idlj tool from JDK 6.0. I
> > googled that I might have wrong bootclasspath - the ORB is usually
> > needed to be in the bootclasspath. So I have added JacORB to
> > bootclasspath and it does not work.
> >
> > It seems it has nothing to do with Yoko. I created JacORB server and I
> > am trying to reach it with JacORB client with the same exception :-(
> >
> > LZ
> >
> > 2007/7/19, Darren Middleman < [EMAIL PROTECTED]>:
> > > Hi Lukas,
> > >
> > > No, I don't believe you will need to have a name service running for
the
> > > example that you mentioned.  This should be a straight forward setup
using
> > > the Yoko binding and an a CORBA client.
> > >
> > > Usually, you get a BAD_PARAM exception when doing a narrow on an
object
> > > which is of the wrong type, for example, trying to narrow something as
a
> > > calculator when it is not.  However, I don't see why this could
happening
> > > yet in your code.  I will try and set up a small test using the code
you
> > > provided to see if I can see what is happening.
> > >
> > > I'll let you know what I find out.
> > >
> > > Cheers,
> > > Darren
> > >
> > >
> > >
> > >
> > >
> > > On 7/19/07, Lukas Zapletal < [EMAIL PROTECTED] > wrote:
> > > > I googled that Name Server may not have started. Proposed solution
is
> > > > to start the Java IDL Name Server:
> > > >
> > > > <JDK1.4 Home>/bin/  tnameserv -ORBInitialPort 1050
> > > >
> > > > Do I need the nameserver when accessing WS in CXF/Yoko Binding from
> > > > JacORB? I will try to run the JacORBs naming service.
> > > >
> > > > I am sorry I am new to CORBA. Thanks for help
> > > >
> > > > LZ
> > > >
> > > > 2007/7/19, Lukas Zapletal <[EMAIL PROTECTED] >:
> > > > > Hello all!
> > > > >
> > > > > I have problem with calling WS from corba. My interface is simple:
> > > > >
> > > > > module com {
> > > > >   module pikeelectronic {
> > > > >    module calc {
> > > > >
> > > > >    interface Calculator {
> > > > >       double add(in double x, in double y);
> > > > >       double sub(in double x, in double y);
> > > > >       double mul(in double x, in double y);
> > > > >       double div(in double x, in double y);
> > > > >    };
> > > > >   };
> > > > >  };
> > > > > };
> > > > >
> > > > > I have converted this to WSDL and created a WS using CXF wsdl2java
> > > tools:
> > > > >
> > > > >
> > > > > /**
> > > > >  * Please modify this class to meet your needs
> > > > >  * This class is not complete
> > > > >  */
> > > > >
> > > > > package com.pikeelectronic.calc.wsserver;
> > > > >
> > > > > import java.util.logging.Logger ;
> > > > > import javax.jws.WebMethod;
> > > > > import javax.jws.WebResult;
> > > > > import javax.xml.ws.RequestWrapper;
> > > > > import javax.xml.ws.ResponseWrapper;
> > > > >
> > > > > /**
> > > > >  * This class was generated by the CXF 2.0-incubator
> > > > >  * Wed Jul 18 14:05:16 CEST 2007
> > > > >  * Generated source version: 2.0-incubator
> > > > >  *
> > > > >  */
> > > > >
> > > > > @javax.jws.WebService(name =
> > > "ComPikeelectronicCalcCalculator",
> > > > > serviceName =
> > > " com.pikeelectronic.calc.CalculatorCORBAService",
> > > > >                       portName =
> > > "com.pikeelectronic.calc.CalculatorCORBAPort",
> > > > >                       targetNamespace =
> > > > > "http://schemas.apache.org/yoko/idl/calc";,
> > > > >                       wsdlLocation = "file: calc.wsdl" ,
> > > > >                       endpointInterface =
> > > > >
> > >
"com.pikeelectronic.calc.wsserver.ComPikeelectronicCalcCalculator")
> > > > >
> > > > > public class ComPikeelectronicCalcCalculatorImpl
> > > implements
> > > > > ComPikeelectronicCalcCalculator {
> > > > >
> > > > >     private static final Logger LOG =
> > > > >
> > >
Logger.getLogger(ComPikeelectronicCalcCalculatorImpl.class.getPackage().getName());
> > > > >
> > > > >     /* (non-Javadoc)
> > > > >      * @see
> > >
com.pikeelectronic.calc.wsserver.ComPikeelectronicCalcCalculator#sub
> > > (double
> > > > >  x ,)double  y )*
> > > > >      */
> > > > >     public double sub(
> > > > >         double x,
> > > > >         double y
> > > > >     )
> > > > >     {
> > > > >        LOG.info("Executing operation sub");
> > > > >         return x - y;
> > > > >     }
> > > > >
> > > > >     /* (non-Javadoc)
> > > > >      * @see
> > >
com.pikeelectronic.calc.wsserver.ComPikeelectronicCalcCalculator#div(double
> > > > >  x ,)double  y )*
> > > > >      */
> > > > >     public double div(
> > > > >         double x,
> > > > >         double y
> > > > >     )
> > > > >     {
> > > > >        LOG.info ("Executing operation div");
> > > > >         return x / y;
> > > > >     }
> > > > >
> > > > >     /* (non-Javadoc)
> > > > >      * @see
> > >
com.pikeelectronic.calc.wsserver.ComPikeelectronicCalcCalculator#mul
(double
> > > > >  x ,)double  y )*
> > > > >      */
> > > > >     public double mul(
> > > > >         double x,
> > > > >         double y
> > > > >     )
> > > > >     {
> > > > >        LOG.info("Executing operation mul");
> > > > >         return x * y;
> > > > >     }
> > > > >
> > > > >     /* (non-Javadoc)
> > > > >      * @see
> > >
com.pikeelectronic.calc.wsserver.ComPikeelectronicCalcCalculator#add
> > > (double
> > > > >  x ,)double  y )*
> > > > >      */
> > > > >     public double add(
> > > > >         double x,
> > > > >         double y
> > > > >     )
> > > > >     {
> > > > >        LOG.info("Executing operation add");
> > > > >         return x + y;
> > > > >     }
> > > > >
> > > > > }
> > > > >
> > > > > I have implemented a client in JacORB:
> > > > >
> > > > > package com.pikeelectronic.calc.CORBAClient;
> > > > >
> > > > > /**
> > > > >  * An example for using the Dynamic Invocation Interface
> > > > >  */
> > > > > //import org.omg.CosNaming.*;
> > > > >
> > > > > public class Client
> > > > > {
> > > > >     public static void main( String[] args )
> > > > >     {
> > > > >             org.omg.CORBA.ORB orb = null;
> > > > >
> > > > >             try
> > > > >             {
> > > > >                 orb = org.omg.CORBA.ORB.init(args,null);
> > > > >
> > > > >                 org.omg.CORBA.Object obj =
> > > > > orb.string_to_object("corbaloc:: 192.168.3.230:40000/calc");
> > > > >
> > > > >                 /*org.omg.CORBA.Object object =
> > > orb.resolve_initial_references(
> > > > > "NameService" );
> > > > >                 NamingContext context = NamingContextHelper.narrow
(
> > > object );*/
> > > > >
> > > > >                 Calculator c = CalculatorHelper.narrow(obj);
> > > > >
> > > > >                 System.out.println("Initialize ready.....");
> > > > >
> > > > >                 System.out.println ("2 + 2 = " + c.add((double)2,
> > > (double)2));
> > > > >                 System.out.println("2 * 2 = " + c.mul((double)2,
> > > (double)2));
> > > > >                 System.out.println("2 / 2 = " + c.div ((double)2,
> > > (double)2));
> > > > >                 System.out.println("2 - 2 = " + c.sub((double)2,
> > > (double)2));
> > > > >
> > > > >             }
> > > > >             catch (Exception e)
> > > > >             {
> > > > >                 e.printStackTrace();
> > > > >             }
> > > > >             orb.shutdown(false);
> > > > >     }
> > > > > }
> > > > >
> > > > > I run the server (in the CXF standalone mode):
> > > > >
> > > > > public class
ComPikeelectronicCalcCalculatorServer{
> > > > >
> > > > >     protected
ComPikeelectronicCalcCalculatorServer()
> > > throws Exception {
> > > > >         System.out.println("Starting Server");
> > > > >         Object implementor = new
> > > ComPikeelectronicCalcCalculatorImpl();
> > > > >         String address = "corbaloc:: 192.168.3.230:40000/calc";
> > > > >         Endpoint.publish (address, implementor);
> > > > >     }
> > > > >
> > > > >     public static void main(String args[]) throws Exception {
> > > > >         new
ComPikeelectronicCalcCalculatorServer();
> > > > >         System.out.println("Server ready...");
> > > > >
> > > > >         Thread.sleep(60 * 60 * 1000);
> > > > >         System.out.println("Server exitting");
> > > > >         System.exit(0);
> > > > >     }
> > > > > }
> > > > >
> > > > > And I run the client. Its giving me this result:
> > > > >
> > > > > org.omg.CORBA.BAD_PARAM:   vmcid: 0x0  minor code: 0  completed:
No
> > > > >         at
> > >
com.pikeelectronic.calc.CORBAClient.CalculatorHelper.narrow(CalculatorHelper.java:60)
> > > > >         at
> > >
com.pikeelectronic.calc.CORBAClient.Client.main(Client.java
:23)
> > > > >
> > > > > Whats wrong? Did I miss something?
> > > > >
> > > > > --
> > > > > Lukas Zapletal
> > > > > http://lukas.zapletalovi.com
> > > > >
> > > >
> > > >
> > > > --
> > > > Lukas Zapletal
> > > > http://lukas.zapletalovi.com
> > > >
> > >
> > >
> >
> >
> > --
> > Lukas Zapletal
> > http://lukas.zapletalovi.com
> >
>
>




--
Lukas Zapletal
http://lukas.zapletalovi.com

Reply via email to