CORBA clients - EJBs in WLS

This is the situation we have:
1) We must support both C++ and Java clients that will be requesting
services from our EJBs running in WLS. The clients are internal apps running
in different companies and we would prefer to avoid requiring our clients to
use an ORB by a specific vendor. At the same time we do not want to deal
with potential problems related to the implementation differences by
different ORB vendors. What would be the best way to handle this situation?
2) WLS documentation has the following paragraph:
"WebLogic RMI over IIOP is the framework for EJB-to-CORBA mapping support.
Currently, however, a standard for passing user identity -- required to
implement EJB-to-CORBA mapping -- does not exist and the requirement for
transaction propagation from the client is in question. While RMI over IIOP
does allow CORBA clients to access EJBeans, the following services will not
be available:
EJB transaction services
EJB security services"
Does this mean that:
2.1) CORBA client initiated transactions will not be supported,
everything will work
2.2) None of the EJB security services will be available in EJB method
called by a CORBA client (i.e. getCallerPrincipal() and isCallerInRole()
will fail)
Thanks in advance

Generally speaking, applications are built around common resources, namely the databases and security realms. Here, it seems you can't make any assumptions about the client at all, so you render useless the ability to propagate the transaction and security context; the upshot being that you couldn't
use it, even if we provided support for it, which we don't.
You also want to be shielded from all the incompatibilities between the ORB vendors, that is, you want to provide a client interface to call into an ejb, that will work irrespective of the orb the client runs. From this, I gather that you can have a 1.0 or 2.1 Tao, Visibroker, IONA, etc, orb as a
client, so you can not use objects in the interface.
To accomplish this, you need to do the following:
-- design the client interface so that it is stateless
-- design the interface so that it does not include any objects or structs... actually, you can use structs, it's just more complicated.
-- use server side transactions only (this follows from the statelessness of the interface)
-- either assume that ssl will be in place by the time you need it or include a token in the interface for the authenticated user
Please, read on...
"<=one way=>" wrote:
This is the situation we have:
1) We must support both C++ and Java clients that will be requesting
services from our EJBs running in WLS. The clients are internal apps running
in different companies and we would prefer to avoid requiring our clients to
use an ORB by a specific vendor. At the same time we do not want to deal
with potential problems related to the implementation differences by
different ORB vendors. What would be the best way to handle this situation?
We support IIOP as the transport. To call into any remote interface, you must provide a java.rmi.Remote interface, and code generate the IDL from that interface using weblogic.rmic. If you follow the above strictures, and use the -noValueTypes discussed earlier, you should be able to make progress
without the promised examples.... or you can wait for the examples.
>
2) WLS documentation has the following paragraph:
"WebLogic RMI over IIOP is the framework for EJB-to-CORBA mapping support.
Currently, however, a standard for passing user identity -- required to
implement EJB-to-CORBA mapping -- does not exist and the requirement for
transaction propagation from the client is in question. While RMI over IIOP
does allow CORBA clients to access EJBeans, the following services will not
be available:
EJB transaction services
EJB security services"
Does this mean that:
2.1) CORBA client initiated transactions will not be supported,
everything else (sic) will workYes.
>
2.2) None of the EJB security services will be available in EJB method
called by a CORBA client (i.e. getCallerPrincipal() and isCallerInRole()
will fail)No. The call will not fail, they will either provide values that correspond to the default or the user configured by the weblogic.iiop.user property.
>
>
Thanks in advance

Similar Messages

  • Does the weblogic server supports c++ corba client /IIOP?

    hi:)
    I have a c++ corba client interacts with WLS using IIOP. I am just wondering
    what ORB i need to use 2) trsaction propagation 3 ) security
    thankx,
    suresh reddy

    I suggest trying the RMI IIOP newsgroup. I do not quite understand your
    question.
    Michael Girdley
    Product Manager, WebLogic Server & Express
    BEA Systems Inc
    "Sunesh Kumra" <[email protected]> wrote in message
    news:[email protected]...
    Hi Michael,
    Is it allowed to use your own multi-threaded library from within WLS ?Note that
    the WLS Beans do not contain the threads, the threading part is in somelibrary
    which the WLS Beans communicates with. Can the Helper classes which arepackaged
    with the WLS Beans span threads of their own ?
    Most importantly, is it allowed to use some vendor's ORB (for exampleOrbixweb)
    within WLS because the thread created by the ORB might interfere with WLS
    threads ??
    Michael Girdley wrote:
    2.1) CORBA client initiated transactions will not be supported,
    everything else will workYes, that is my understanding.
    2.2) None of the EJB security services will be available in EJB
    method
    called by a CORBA client (i.e. getCallerPrincipal() andisCallerInRole()
    will fail)Yes, that is my understanding. I would suggest that you place this onthe
    RMI IIOP newsgroup. The developers who write the code for this feature
    actually hang out over there.
    Thanks,
    Michael
    Michael Girdley
    Product Manager, WebLogic Server & Express
    BEA Systems Inc
    "<=one way=>" <[email protected]> wrote in message
    news:[email protected]...
    1) We must support both C++ and Java clients that will be requesting
    services from our EJBs running in WLS. The clients are internal appsrunning
    in different companies and we would prefer to avoid requiring our
    clients
    to
    use an ORB by a specific vendor. At the same time we do not want to
    deal
    with potential problems related to the implementation differences by
    different ORB vendors. What would be the best way to handle thissituation?
    2) WLS documentation has the following paragraph:
    "WebLogic RMI over IIOP is the framework for EJB-to-CORBA mapping
    support.
    Currently, however, a standard for passing user identity -- requiredto
    implement EJB-to-CORBA mapping -- does not exist and the requirementfor
    transaction propagation from the client is in question. While RMI overIIOP
    does allow CORBA clients to access EJBeans, the following services
    will
    not
    be available:
    EJB transaction services
    EJB security services"
    Does this mean that:
    2.1) CORBA client initiated transactions will not be supported,
    everything else will work
    2.2) None of the EJB security services will be available in EJB
    method
    called by a CORBA client (i.e. getCallerPrincipal() andisCallerInRole()
    will fail)
    Thanks in advance
    "Michael Girdley" <[email protected]> wrote in message
    news:[email protected]...
    Yes, check out the documentation on the RMI over IIOP on our web
    site.
    >>>>
    Thanks,
    Michael
    Michael Girdley
    Product Manager, WebLogic Server & Express
    BEA Systems Inc
    "indham inc" <[email protected]> wrote in message
    news:[email protected]...
    hi:)
    I have a c++ corba client interacts with WLS using IIOP. I am justwondering
    what ORB i need to use 2) trsaction propagation 3 ) security
    thankx,
    suresh reddy

  • Problem using CORBA clients with RMI/EJB servers..!!!???

    Hi,
    I have a question on using EJB / or RMI servers with CORBA clients using
    RMI-IIOP transport, which in theory should work, but in practice has few
    glitches.
    Basically, I have implemented a very simple server, StockTreader, which
    looks up for a symbol and returns a 'Stock' object. In the first example, I
    simplified the 'Stock' object to be a mere java.lang.String, so that lookup
    would simply return the 'synbol'.
    Then I have implemented the above, as an RMI-IIOP server (case 1) and a
    CORBA server (case 2) with respective clients, and the pair of
    client-servers work fine as long as they are CORBA-to-CORBA and RMI-to-RMI.
    But the problem arises when I tried using the RMI server (via IIOP) with the
    CORBA client, when the client tries to narrow the object ref obtained from
    the naming service into the CORBA idl defined type (StockTrader) it ends up
    with a class cast exception.
    This is what I did to achieve the above results:
    [1] Define an RMI interface StockTrader.java (extending java.rmi.Remote)
    with the method,
    public String lookup( String symbol) throws RMIException;
    [2] Implement the StorckTrader interface (on a PortableRemoteObject derived
    class, to make it IIOP compliant), and then the server to register the stock
    trader with COS Naming service as follows:
    String homeName =....
    StockTraderImpl trader =new StockTraderImpl();
    System.out.println("binding obj <" homeName ">...");
    java.util.Hashtable ht =new java.util.Hashtable();
    ht.put("java.naming.factory.initial", args[2]);
    ht.put("java.naming.provider.url", args[3]);
    Context ctx =new InitialContext(ht);
    ctx.rebind(homeName, trader);
    [3] Generate the RMI-IIOP skeletons for the Implementation class,
    rmic -iiop stock.StockTraderImpl
    [4] generate the IDL for the RMI interface,
    rmic -idl stock.StockTraderImpl
    [5] Generate IDL stubs for the CORBA client,
    idlj -v -fclient -emitAll StockTraderImpl.idl
    [6] Write the client to use the IDL-defined stock trader,
    String serverName =args[0];
    String symList =args[1];
    StockClient client =new StockClient();
    System.out.println("init orb...");
    ORB orb =ORB.init(args, null);
    System.out.println("resolve init name service...");
    org.omg.CORBA.Object objRef
    =orb.resolve_initial_references("NameService");
    NamingContext naming =NamingContextHelper.narrow(objRef);
    ... define a naming component etc...
    org.omg.CORBA.Object obj =naming.resolve(...);
    System.out.println("narrow objRef: " obj.getClass() ": " +obj);
    StockTrader trader =StockTraderHelper.narrow(obj);
    [7] Compile all the classes using Java 1.2.2
    [8] start tnameserv (naming service), then the server to register the RMI
    server obj
    [9] Run the CORBA client, passing it the COSNaming service ref name (with
    which the server obj is registered)
    The CORBA client successfully finds the server obj ref in the naming
    service, the operation StockTraderHelper.narrow() fails in the segment
    below, with a class cast exception:
    org.omg.CORBA.Object obj =naming.resolve(...);
    StockTrader trader =StockTraderHelper.narrow(obj);
    The <obj> returned by naming service turns out to be of the type;
    class com.sun.rmi.iiop.CDRInputStream$1
    This is of the same type when stock trader object is registered in a CORBA
    server (as opposed to an RMI server), but works correctly with no casting
    excpetions..
    Any ideas / hints very welcome.
    thanks in advance,
    -hari

    On the contrary... all that is being said is that we needed to provide clearer examples/documentation in the 5.1.0 release. There will be no difference between the product as found in the service pack and the product found in the 5.1.1. That is, the only substantive will be that 5.1.1 will also
    include the examples.
    "<=one way=>" wrote:
    With reference to your and other messages, it appears that one should not
    expect that WLS RMI-IIOP will work in a complex real-life system, at least
    not now. In other words, support for real-life CORBA clients is not an
    option in the current release of WLS.
    TIA
    "Eduardo Ceballos" <[email protected]> wrote in message
    news:[email protected]...
    We currently publish an IDL example, even though the IDL programmingmodel in Java is completely non-functional, in anticipation of the support
    needs for uses who need to use IDL to talk to the Weblogic server,
    generically. This example illustrates the simplest connectivity; it does not
    address how
    to integrate CORBA and EJB, a broad topic, fraught with peril, imo. I'llnote in passing that, to my knowledge, none of the other vendors attempt
    this topic either, a point which is telling if all the less happy to hear.
    For the record then, what is missing from our distribution wrt RMI-IIOPare a RMI-IIOP example, an EJB-IIOP example, an EJB-C++. In this you are
    correct; better examples are forth coming.
    Still, I would not call our RMI-IIOP implementation fragile. I would saythat customers have an understandably hard time accepting that the IDL
    programming model is busted; busted in the sense that there are no C++
    libraries to support the EJB model, and busted in the sense that there is
    simply no
    support in Java for an IDL interface to an EJB. Weblogic has nothing to doit being busted, although we are trying to help our customers deal with it
    in productive ways.
    For the moment, what there is is a RMI (over IIOP) programming model, aninherently Java to Java programming model, and true to that, we accept and
    dispatch IIOP request into RMI server objects. The way I look at it is this:
    it's just a protocol, like HTTP, or JRMP; it's not IDL and it has
    practically nothing to do with CORBA.
    ST wrote:
    Eduardo,
    Can you give us more details about the comment below:
    I fear that as soon as the call to narrow succeeds, the remainingapplication will fail to work correctly because it is too difficult ot
    use an idl client in java to work.It seems to me that Weblogic's RMI-IIOP is a very fragile
    implementation. We
    don't need a "HelloWorld" example, we need a concrete serious example(fully
    tested and seriously documented) that works so that we can get a betteridea
    on how to integrate CORBA and EJB.
    Thanks,
    Said
    "Eduardo Ceballos" <[email protected]> wrote in message
    news:[email protected]...
    Please post request to the news group...
    As I said, you must separate the idl related classes (class files and
    java
    files) from the rmi classes... in the rmic step, you must set a newtarget
    (as you did), emit the java files into that directory (it's not clearyou
    did this), then remove all the rmi class files from the class path... ifyou
    need to compile more classes at that point, copy the java files to theidl
    directly is you must, but you can not share the types in any way.
    I fear that as soon as the call to narrow succeeds, the remainingapplication will fail to work correctly because it is too difficult otuse
    an idl client in java to work.
    Harindra Rajapakshe wrote:
    Hi Eduardo,
    Thanks for the help. That is the way I compiled my CORBA client, by
    separating the IDL-generated stubs from the RMI ones, but still I
    get a
    CORBA.BAD_PARAM upon narrowing the client proxy to the interfacetype.
    Here's what I did;
    + Define the RMI interfaces, in this case a StockTrader interface.
    + Implement RMI interface by extendingjavax.rmi.PortableRemoteObject
    making
    it IIOP compliant
    + Implemnnt an RMI server, and compile using JDK1.2.2
    + use the RMI implementation to generate CORBA idl, using RMI-IIOPplugin
    utility rmic;
    rmic -idl -noValueMethods -always -d idl stock.StockTraderImpl
    + generate Java mappings to the IDL generated above, using RMI-IIOPplugin
    util,
    idlj -v -fclient -emitAll -tf src stocks\StockTrader.idl
    This creates source for the package stock and also
    org.omg.CORBA.*
    package, presumably IIOP type marshalling
    + compile all classes generated above using JDK1.2.2
    + Implement client (CORBA) using the classes generated above, NOTthe
    RMI
    proxies.
    + start RMI server, with stockTrader server obj
    + start tnameserv
    + start CORBA client
    Then the client errors when trying to narrow the obj ref from the
    naming
    service, into the CORBA IDL defined interface using,
    org.omg.CORBA.Object obj =naming.resolve(nn);
    StockTrader trader =StockTraderHelper.narrow(obj); // THIS
    ERRORS..!!!
    throwing a CORBA.BAD_PARAM exception.
    any ideas..?
    Thanks in advance,
    -hari
    ----- Original Message -----
    From: Eduardo Ceballos <[email protected]>
    Newsgroups: weblogic.developer.interest.rmi-iiop
    To: Hari Rajapakshe <[email protected]>
    Sent: Wednesday, July 26, 2000 4:38 AM
    Subject: Re: problem using CORBA clients with RMI/EJBservers..!!!???
    Please see the post on june 26, re Errors compiling... somewherein
    there,
    I suspect, you are referring to the rmi class file when you are
    obliged
    to
    completely segregate these from the idl class files.
    Hari Rajapakshe wrote:
    Hi,
    I have a question on using EJB / or RMI servers with CORBA
    clients
    using
    RMI-IIOP transport, which in theory should work, but in practice
    has
    few
    glitches.
    Basically, I have implemented a very simple server,
    StockTreader,
    which
    looks up for a symbol and returns a 'Stock' object. In the firstexample, I
    simplified the 'Stock' object to be a mere java.lang.String, so
    that
    lookup
    would simply return the 'synbol'.
    Then I have implemented the above, as an RMI-IIOP server (case
    1)
    and a
    CORBA server (case 2) with respective clients, and the pair of
    client-servers work fine as long as they are CORBA-to-CORBA andRMI-to-RMI.
    But the problem arises when I tried using the RMI server (via
    IIOP)
    with
    the
    CORBA client, when the client tries to narrow the object ref
    obtained
    from
    the naming service into the CORBA idl defined type (StockTrader)
    it
    ends
    up
    with a class cast exception.
    This is what I did to achieve the above results:
    [1] Define an RMI interface StockTrader.java (extending
    java.rmi.Remote)
    with the method,
    public String lookup( String symbol) throws RMIException;
    [2] Implement the StorckTrader interface (on a
    PortableRemoteObject
    derived
    class, to make it IIOP compliant), and then the server to
    register
    the
    stock
    trader with COS Naming service as follows:
    String homeName =....
    StockTraderImpl trader =new StockTraderImpl();
    System.out.println("binding obj <" homeName ">...");
    java.util.Hashtable ht =new java.util.Hashtable();
    ht.put("java.naming.factory.initial", args[2]);
    ht.put("java.naming.provider.url", args[3]);
    Context ctx =new InitialContext(ht);
    ctx.rebind(homeName, trader);
    [3] Generate the RMI-IIOP skeletons for the Implementation
    class,
    rmic -iiop stock.StockTraderImpl
    [4] generate the IDL for the RMI interface,
    rmic -idl stock.StockTraderImpl
    [5] Generate IDL stubs for the CORBA client,
    idlj -v -fclient -emitAll StockTraderImpl.idl
    [6] Write the client to use the IDL-defined stock trader,
    String serverName =args[0];
    String symList =args[1];
    StockClient client =new StockClient();
    System.out.println("init orb...");
    ORB orb =ORB.init(args, null);
    System.out.println("resolve init name service...");
    org.omg.CORBA.Object objRef
    =orb.resolve_initial_references("NameService");
    NamingContext naming=NamingContextHelper.narrow(objRef);
    ... define a naming component etc...
    org.omg.CORBA.Object obj =naming.resolve(...);
    System.out.println("narrow objRef: " obj.getClass() ":"
    +obj);
    StockTrader trader =StockTraderHelper.narrow(obj);
    [7] Compile all the classes using Java 1.2.2
    [8] start tnameserv (naming service), then the server to
    register
    the
    RMI
    server obj
    [9] Run the CORBA client, passing it the COSNaming service ref
    name
    (with
    which the server obj is registered)
    The CORBA client successfully finds the server obj ref in the
    naming
    service, the operation StockTraderHelper.narrow() fails in thesegment
    below, with a class cast exception:
    org.omg.CORBA.Object obj =naming.resolve(...);
    StockTrader trader =StockTraderHelper.narrow(obj);
    The <obj> returned by naming service turns out to be of the
    type;
    class com.sun.rmi.iiop.CDRInputStream$1
    This is of the same type when stock trader object is registeredin a
    CORBA
    server (as opposed to an RMI server), but works correctly with
    no
    casting
    excpetions..
    Any ideas / hints very welcome.
    thanks in advance,
    -hari

  • EJB in WLS - CORBA and EJB on WLE

    I have a client who is looking to attach a C++ client to their WLE
    system, and, since
    they now have WLS and WLE thanks to v. 5.1, they want to start moving
    EJBs to the
    WLS platform. The issue is this.
    What if any are the issues regarding communicating between CORBA objects
    on WLE
    TO EJBs on WLS? I noticed that the illustrations always show the
    communication coming
    from the WLS side to the WLE side, but this client will be connected
    directly to the WLE
    platform, and wanting to access services on WLS.
    Any issues, directions to documentation, or other advice regarding this
    issue?
    Thanks in advance,
    Maffy
    [maffy.vcf]

    can anyone give code example for accessing WLS-EJB from WLE corba client.
    louc wrote:
    Interesting how things can be interpreted. What we need is direct input
    from engineering on this.
    In studying the only direct source of information we have... (the docs...
    and ass-u-me'ing that the docs are correct) it appears that we can have a
    CORBA object in WLE access a EJB in WLS through RMI/IIOP as long as the
    parameter passing is kept to primitive data types. Any attempt to use the
    'Object-by-Value' feature of CORBA 2.3 will result in a error because WLE
    5.1 does not support passing 'Object-by-Value' at this time.
    So to answer Maffy's question... yes a WLE CORBA client can access a WLS EJB
    service through RMI over IIOP.
    -- Lou Caraballo
    Sr. Systems Engineer
    BEA Systems Inc., Denver Telco Group
    719-332-0818 (cell)
    720-528-6073 (denver)
    Robert Patrick <[email protected]> wrote in message
    news:[email protected]...
    The issue is that WLE does not yet support the RMI/IIOP standard (since itdoes not yet support
    Objects by Value) not that the RMI/IIOP support in WLS 5.1 (as of SP3)does not support
    bi-directional communication.
    Papaya Head wrote:
    so, you are saying bi-directional communication is not supported... can
    you tell me what
    rmi/iiop is for?
    Thanks.
    Maffy Finnerty wrote:
    Okay, found a work around thanks to Deepak Sharma (THANK YOU,
    DEEPAK!!) in the BEA
    East office.
    What my customer is going to have to do for now - until, as Will Lyonspointed out, the
    bi-directional
    communication is supported - is to build a Java "client" process onWLE that communicates
    with the
    RMI/EJB/Servlet process on WLS.
    Deepak suggested that the best way, since they are a CORBA shop tryingto move to Java,
    would be to have the C++ client talking to a CORBA/C++ object on WLEthat calls
    a CORBA/Java object on WLE that acts as a client to WLS and accessesthe services of the
    Java object on that server.
    Another option would be to have the CORBA/C++ object on WLE use theJNI API to call a Java
    object
    on WLE that acts as a client to WLS and accesses the Java servicerunning there. There may
    be better
    performance from CORBA/C++ to CORBA/Java, though, so that was Deepak'sfirst choice.
    Maffy
    Papaya Head wrote:
    you can also find an example in the WLS5.1 docs that includes a code
    segment from C++
    client of the RMI-IIOP hello example.
    Will Lyons wrote:
    The example application with C++ CORBA objects calling EJBs on a
    Java Server refers
    to C++ CORBA objects on the WLE T-Engine calling EJBs on the WLET-Engine. That
    interoperability capability is supported, but it is not possibleto call the J-Engine
    from the T-Engine in WLE 5.1. The primary usage model assumed inWLE 5.1 is calling
    the WLE T-Engine from the J-Engine (or from WLS).
    Will
    Papaya Head wrote:
    my understanding of your question is: you want some feature that
    allows CORBA
    objects to talk to EJB objects on WLS.
    WLS5.1 has a new feature: RMI/IIOP, it's probably the featureyou want.
    before WLS5.1, CORBA components couldn't talk to EJB componentsdirectly, but you
    could make it happen by building a bridge from CORBA objects toEJB components on
    WLS. that's probably what the references you read are talkingabout...
    Maffy Finnerty wrote:
    We haven't even gotten that far yet, re: transactions. Right
    now the issue is
    having an
    in-house client (C++) connected to WLE but accessing services(EJBs) on WLS.
    No talk
    of transactions has occurred, yet.
    However, I just found some conflicting information. I found areference to
    building the
    simpapp application to connect C++ objects on a CORBA serverto EJBs on a Java
    Server,
    which, if I'm reading it correctly, translates to WLE to WLS.However, I also
    found a
    reference to bidirectional interoperability that said that,for now, the
    T-Engine could not
    (WLE) could NOT invoke services on the J-Engine (WLS) but thatservices on the
    T-Engine
    (WLE) could BE invoked from requesters on the J-Engine (WLS).So, color me
    confused.
    maffy
    Papaya Head wrote:
    the first question that comes to my mind is:
    can transaction run across components on WLE and components
    on WLS? I don't
    think it can...
    Maffy Finnerty wrote:
    I have a client who is looking to attach a C++ client to
    their WLE
    system, and, since
    they now have WLS and WLE thanks to v. 5.1, they want tostart moving
    EJBs to the
    WLS platform. The issue is this.
    What if any are the issues regarding communicating betweenCORBA objects
    on WLE
    TO EJBs on WLS? I noticed that the illustrations alwaysshow the
    communication coming
    from the WLS side to the WLE side, but this client will beconnected
    directly to the WLE
    platform, and wanting to access services on WLS.
    Any issues, directions to documentation, or other adviceregarding this
    issue?
    Thanks in advance,
    Maffy

  • CORBA clients to EJB servers

    According to the article "Enterprise JavaBeans Components and CORBA Clients: A Developer Guide", CORBA clients can directly access an EJB bean via IIOP.
    The procedure is like the followings:
    1) Generate IDL files from EJB remote classes(Logger.class, LoggerHome.class).
    2) Deliver IDL files to CORBA clients.
    3) CORBA clients comple IDL files to a specific language(i.e., C++, Java, ...)
    I used 'rmic', distributed with J2SDK 1.3 and 1.4, as a Java-to-IDL translator.
    > rmic -idl -noValueMethods -classpath %j2ee_home%\lib\j2ee.jar;. ejbinterop.Logger ejbinterop.LoggerHome
    But I encountered many problems while compiling Java source files, generated by 'idlj' of J2SDK 1.3 and 1.4, after the third step.
    Anyone else experienced the same situation?
    Any help will be appreciated.

    You most likely won't be able to make the "round trip" of
    Java -> IDL -> Java
    I believe the IDL to Java and Java to IDL specs at the OMG say that it's unsupported.

  • Corba Client For EJB

    Hello
    I am trying to connect Corba Client to EJB deployed in OC4J.
    I followed the instructions given on
    http://otn.oracle.com/tech/java/oc4j/htdocs/how-to-rmi-iiop.html
    But I am not getting success after making tries in different ways.
    Can some body tell how to connect to EJB by a corba client using Oc4j.
    If OC4J does't support RMI-IIOP , can you suggest other server which supports that.
    Thanx in advance.

    I'm stuck exactly with the same issue while trying to port my application from weblogic to jboss.
    I tried to specify different ORB implementations (JacORB, OpenORB) for jvm option org.omg.CORBA.ORBClass, but JBoss couldn't get them instantiated. Native Sun implementation which is used in JBoss by default and can be instantiated, apparently is not fully compatible with weblogic security module.
    So did you manage to find out the solution?
    Edited by DigitalDude at 04/09/2008 11:47 PM

  • Corba client to EJB on OAS408 ?

    I have an EJB deployed on OAS408. Can I call the EJB methods from a Corba client? How will I setup a CORBA client to communicate RMI over IIOP ?
    I found the following statement on the Oracle Java roadmap :
    "Enterprise beans and Common Ojbect Request Broker Architecture (CORBA) clients can inter-operate with each other opening up the possibility of multiple types of clients accessing EJB servers accross the enterprise."
    Can anybody please help me on how to do this
    null

    I am trying to do exactly the same thing
    But I am unable to read the zip file on
    the newsgroup.
    Can someone mail me the zip of the sample
    code.
    Thanks inAdvance.
    Irfan Lateef

  • Accessing EJB's from CORBA clients

    Hi!
    Can someone answer one badly important question?
    Is it possible to access EJB's from CORBA clients directly, as if the
    beans were ordinary CORBA objects? I mean DIRECT access - WIDHOUT
    CORBA/Java server application as a liason between CORBA client and EJB
    server!
    I'm using WebLogic Enterprise 5.0.1.
    Thanks in advance.
    Aleksey.

    Please reference a later posting on this very same question.
    -- Lou Caraballo
    Sr. Systems Engineer
    BEA Systems Inc., Denver Telco Group
    719-332-0818 (cell)
    720-528-6073 (denver)
    Aleksey Bukavnev <[email protected]> wrote in message
    news:[email protected]..
    Thank you!
    Aleksey.
    Bill Lloyd wrote:
    There is a java to IDL mapping, which is quite complex. To use it, you
    must
    have an ORB which supports, at minimum, CORBA 2.3. ORBs I know of which
    support this include Orbix 2000 for Java, Visibroker 4.0 for Java, and
    Orbacus 4.0 for Java.
    Also, check out the June 2000 "Java Report" which has an article onthis.
    >>
    To be perfectly honest, though, the best solution is to write a bridge,in
    Java. One side is IDL, which CORBA clients use. The implementation ofthat
    IDL makes RMI requests to get the necessary info. This solution willwork,
    guaranteed. The portion of the spec for the java to IDL mapping isstill
    quite new, and I would expect some, uh, "unexpected features" at thistime.
    >>
    -B
    "Aleksey Bukavnev" <[email protected]> wrote in message
    news:[email protected]..
    Hi!
    Can someone answer one badly important question?
    Is it possible to access EJB's from CORBA clients directly, as if the
    beans were ordinary CORBA objects? I mean DIRECT access - WIDHOUT
    CORBA/Java server application as a liason between CORBA client and EJB
    server!
    I'm using WebLogic Enterprise 5.0.1.
    Thanks in advance.
    Aleksey.

  • CORBA client reconnection: InvalidDomain

    I'm developing a CORBA-client for WLE 5.1. In short, the problem is:
    I can't restore a connection after a COMM_FAILURE. When trying to create a Tobj_Bootstrap object again I get
    com.beasys.Tobj.InvalidDomain: Can't connect to the domain (//my.domain:2600)
    Here are some details. The client must work without restart during a long time. It is normal that sometimes network problems occur or server is restarted or any other thing happens that can make a remote object reference invalid. So, when getting a COMM_FAILURE, I try to "reconnect" - that is to obtain remote reference again. I do it in the same way as on the first start of the client:
    1. Create Tobj_Bootstrap.
    2. Obtain Factory Finder.
    3. Obtain Factory.
    4. Obtain remote interface reference.
    On the first step I get this InvalidDomain exception. Even if the connection is OK, the server is up and running and the URL passed to Tobj_Bootstrap(orb, url) is correct. The other strange thing is - there is no network activity during this call (observed by network monitoring tool). Seems ORB doesn't really try to do its job.
    BTW, I use m3envobj.jar and wleclient.jar for CORBA-functionality.
    The same client using SUN's ORB (with simple CORBA-server from JDK 1.4) reconnects well.
    What is the reason?
    Thanks in advance.
    Yury.

    Generally, no. If you carefully massage the IDL that results from the EJB, it's possible to manufacture a subset of the EJB's interface that a 2.2 or 2.1 ORB can call, but there is currently no automagical support for this in WLS. Beyond the use of value types, the trouble that most ORBs run into is
    the IIOP type codes that start with RMI: instead of IDL:
    Loaner wrote:
    Hi,
    I have a CORBA client developed on pre CORBA 2.3 ORB, i.e. the ORB
    doesn't supports Object by Value. Can this client access the services
    being provided by the EJB somehow??
    Any help will be appreicated.
    Vikas

  • CORBA Client Runtime POA

    Hello,
    I am trying to implement a client that uses callbacks to
    a CORBA server. Does my client need a runtime license in order to make this work?

    Generally, no. If you carefully massage the IDL that results from the EJB, it's possible to manufacture a subset of the EJB's interface that a 2.2 or 2.1 ORB can call, but there is currently no automagical support for this in WLS. Beyond the use of value types, the trouble that most ORBs run into is
    the IIOP type codes that start with RMI: instead of IDL:
    Loaner wrote:
    Hi,
    I have a CORBA client developed on pre CORBA 2.3 ORB, i.e. the ORB
    doesn't supports Object by Value. Can this client access the services
    being provided by the EJB somehow??
    Any help will be appreicated.
    Vikas

  • CORBA Clients

    Hi,
    I would like to know more about to CORBA clients (C++ & Java) accessing EJBs
    in the weblogic cluster. We have an EJB deployed in the weblogic cluster,
    when we are trying to access that EJB through CORBA client (Visibroker 5.1
    ORB), will it return me a replica aware stub or there is no Fault tolerant
    for CORBA clients.
    TIA,
    Vikas

    Hi Andy,
    Thanks for your reply.
    We have been calling EJBs using CORBA, the clients we have tested are C++ &
    Java clients. So I don't understand when you said Java doesn't work well due
    to some limitations. We are using the Visibroker ORB at the client side.
    Now as we move forward, we hit a wall as far as HA of the whole system is
    concerned. Are you aware of somebody using J2EE & CORBA in HA environment?
    Since we have some friends in house who are C++ geeks & we do have some
    legacy C++ code too. As you mentioned Tuxedo ORB, is it a fully functional
    ORB, which version of OMG specs it comply with?
    What happens in case if we want to invoke CORBA service from our EJBs
    deployed in the weblogic cluster? What are the issues we have in HA for this
    scenario?
    Thanks,
    Vi
    "Andy Piper" <[email protected]> wrote in message
    news:[email protected]...
    "Vikas Chawla" <[email protected]> writes:
    I would like to know more about to CORBA clients (C++ & Java) accessing
    EJBs
    >
    C++ works fine (we recommend you use the WebLogic C++ Client (Tuxedo
    ORB) since its free and works well). Java does not work at all due to
    limitations in the Java IDL mapping spec (i.e. does not work for any
    Vendor). Java clients should always use RMI to access EJB's.
    in the weblogic cluster. We have an EJB deployed in the weblogic
    cluster,
    when we are trying to access that EJB through CORBA client (Visibroker5.1
    ORB), will it return me a replica aware stub or there is no Faulttolerant
    for CORBA clients.Fault tolerance in WLS is client driven and thus there is no support
    for it in foreign ORBs. The next release of the WebLogic C++ client
    (part of Tux 8.1) includes fault-tolerance and load-balancing which
    you can use against WLS. This product will be free to WLS
    licencees. You could probably get hold of a beta of this product. It
    would also to be possible to implement fault-tolerance using
    interceptors if your ORB is spec compliant (we do this with the JDK
    1.4 ORB) but you would need to go through your account rep in order to
    get details of the IOR and Service Context formats.
    HTH
    andy

  • Getting Tomcat 4.1 to call EJBs in WLS 8.1

    I know this is not necessarily a new topic, but we're upgrading our Tomcat
    4.1 -> WLS 5.1 to a Tomcat 4.1 -> WLS 8.1 configuration.
    Firstly, has ANYONE got Tomcat 4.1.x to work with a post 5.1 container at
    all? Ever?
    We are using the T3 protocol to talk to our beans, and the goal, of course,
    is that our Tomcat based client code will ideally not have to change.
    Our beans are all EJB 1.1, and I have them loaded into a running WLS 8.1
    container. They appear to work.
    The way I tested to see if I could talk to WLS was by using a simple client
    that I had that gets an InitialContext, and then grabs a bean.
    I now have a simple JSP that essentially does the same thing. I've bundled
    this jsp into a properly formatted WAR file.
    Within this WAR file in the WEB-INF/classes directory are the Session bean
    Home and the Session Bean Remote interface classes.
    Within the WEB-INF/lib directory is the
    c:\bea\weblogic81\server\lib\weblogic.jar, slightly modified.
    After the first attempt to load this, Tomcat would complain because the
    weblogic.jar contains the javax.servlet package, so I exploded the
    weblogic.jar file, renamed javax/servlet to javax/servlet.x, and then
    rejarred the file. This file was placed into the WEB-INF/lib directory.
    This is otherwise a default Tomcat 4.1.18 binary package.
    Here's the WAR file contents:
    ./META-INF/MANIFEST.MF
    ./WEB-INF/classes/com/pfizer/ecms/as/CustomizationSession.class
    ./WEB-INF/classes/com/pfizer/ecms/as/CustomizationSessionHome.class
    ./WEB-INF/lib/wlsx.jar <-- Edited weblogic.jar
    ./WEB-INF/web.xml
    ./test.jsp
    This is the contents of the test.jsp:
    <%@ page language="java" %>
    <%@ page import="javax.naming.*" %>
    <%@ page import="com.pfizer.ecms.as.*" %>
    <%
    try{
    System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
    System.setProperty(Context.PROVIDER_URL, "t3://localhost:7001");
    InitialContext ctx = new InitialContext();
    CustomizationSessionHome csth = (CustomizationSessionHome)
    ctx.lookup("CustomizationSession");
    CustomizationSession cst = csth.create();
    catch (Throwable t) {
    System.out.println(">>>t = " + t);
    t.printStackTrace(System.out);
    %>
    <HTML>
    <BODY>
    This is the jsp.
    </BODY>
    </HTML>
    Similar code to this has been working for us for 3 years so far.
    When I try and load the JSP, it dumps a stack trace. Here's the relevant
    bits up to the Tomcat container:
    t = java.lang.NoClassDefFoundError: weblogic/rmi/extensions/server/Stubjava.lang.NoClassDefFoundError: weblogic/rmi/extensions/server/Stub
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at
    weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLo
    ader.java:431)
    at
    weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.
    java:169)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:217)
    at
    weblogic.utils.classfile.utils.CodeGenerator.generateClass(CodeGenerator.jav
    a:71)
    at weblogic.rmi.internal.StubGenerator.getStubClass(StubGenerator.java:672)
    at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:712)
    at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:699)
    at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:76)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.newRootNamingNodeStub(WLInitia
    lContextFactoryDelegate.java:486)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.newRemoteContext(WLInitialCont
    extFactoryDelegate.java:449)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.newContext(WLInitialContextFac
    toryDelegate.java:345)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialCon
    textFactoryDelegate.java:308)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialCon
    textFactoryDelegate.java:234)
    at
    weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFact
    ory.java:135)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
    at javax.naming.InitialContext.init(InitialContext.java:219)
    at javax.naming.InitialContext.<init>(InitialContext.java:175)
    at org.apache.jsp.test_jsp._jspService(test_jsp.java:51)
    What is interesting about this is that the system could "see"
    weblogic.utils.classloaders.GenericClassLoader, but THAT class could not
    find weblogic.rmi.extension.server.Stub, even though they are, ideally, at
    the same level within the Tomcat imposed hierarchy of classloaders.
    Unfortunately, we don't quite know where in that hierarchy each class is
    placed.
    Now, the culprit may well be java.security.SecureClassLoader (or, actually,
    the java.lang.ClassLoader.defineClass0), which is very high up in the
    hierarchy trying to load a the result of the StubGenerator, only to find
    that an associated class, weblogic.rmi.extensions.server.Stub, was "not
    found" because it only existed deep in the Tomcat hierarchy.
    One way that I tried to get around this was to start taking selective bits
    of of weblogic.jar and put them on the system CLASSPATH used by Tomcat when
    it starts up.
    This gets us farther along, in that more classes seem to load without
    getting the ClassDefNotFound error, but it finally leads us into this
    exception:
    The error is, with a small bit of stack dump:
    weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Environment not
    found on thread ]
    at
    weblogic.jndi.internal.NamingNodeReplicaHandler.<init>(NamingNodeReplicaHand
    ler.java:150)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces
    sorImpl.java:39)
    at
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc
    torAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
    at java.lang.Class.newInstance0(Class.java:306)
    at java.lang.Class.newInstance(Class.java:259)
    at
    weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectIn
    putStream.java:90)
    snip
    The relevant starting point is toward the middle of the stack trace:
    at
    weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:106
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:125)
    at
    com.pfizer.ecms.as.DataImporterSession_aiw0oz_HomeImpl_810_WLStub.create(Unk
    nown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    .java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at com.pfizer.ecms.com.AppServer.createInstance(AppServer.java:163)
    at com.pfizer.ecms.com.AppServer.getDataImporterSession(AppServer.java:231)
    at
    com.pfizer.ecms.ws.ECMSActionServlet.testBeans(ECMSActionServlet.java:1662)
    at
    com.pfizer.ecms.ws.ECMSActionServlet.initOther(ECMSActionServlet.java:62)
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
    Now, according to the Weblogic documentation, the AssertionError exception
    "is impossible". Well, that's my job they say, doing the impossible.
    Minimally, it's a meaningless message to me and pretty much stops me cold.
    I have seen other discussions about Tomcat and how it's not J2EE, etc, and
    perhaps my expectations that this will work are too high. My concern with
    that is simply that in our case, Tomcat is a Fat Client no different from
    "any other Java application". We just use Tomcat to talk to beans rather
    than a custom client. The difficulty, it seems, is in the complexities of
    the Tomcat class loaders interoperating with the expectations of Weblogics
    classes et al.
    I've got a small application that does exactly what Tomcat wants to do, so
    "weblogic works", except of course, in Tomcat.
    So, in the end, I'm curious if others have some data on getting these two
    system cooperating. If anyone has any other ideas on how to use Tomcat as a
    client of Weblogic 8 that utilizes techniques besides replacing Tomcat
    (which is not an option at the moment) I'd like to hear those as well. I
    have been fighting this for days, and tried several things, but nothing
    "obvious" seems to help.
    Weblogic 8 has a "thin client" jar, but it's only useful for RMI rather than
    T3, plus it's still not clear how we'd go about rewriting the interfaces to
    support that versus the standard EJB interfaces already created for the
    beans.
    Any assistance greatly appreciated.
    Regards,
    Will Hartung
    ([email protected])

    Of course I feel obliged to first recommend that you run your webapps
    and EJBs in WLS. There's significant performance advantages and it
    greatly simpifies your life since you don't have to deal with another
    remote failure case.
    That being said, I believe it should be possible especially with 8.1 to
    make Tomcat a WLS client.
    Answers inline.
    Will Hartung wrote:
    I know this is not necessarily a new topic, but we're upgrading our Tomcat
    4.1 -> WLS 5.1 to a Tomcat 4.1 -> WLS 8.1 configuration.
    Firstly, has ANYONE got Tomcat 4.1.x to work with a post 5.1 container at
    all? Ever?
    We are using the T3 protocol to talk to our beans, and the goal, of course,
    is that our Tomcat based client code will ideally not have to change.
    Our beans are all EJB 1.1, and I have them loaded into a running WLS 8.1
    container. They appear to work.
    The way I tested to see if I could talk to WLS was by using a simple client
    that I had that gets an InitialContext, and then grabs a bean.
    I now have a simple JSP that essentially does the same thing. I've bundled
    this jsp into a properly formatted WAR file.
    Within this WAR file in the WEB-INF/classes directory are the Session bean
    Home and the Session Bean Remote interface classes.
    Within the WEB-INF/lib directory is the
    c:\bea\weblogic81\server\lib\weblogic.jar, slightly modified.My suggestion is to ditch the weblogic.jar and the joys of trying to
    modify it. I'd instead check out 8.1's thin client support:
    http://e-docs.bea.com/wls/docs81/rmi_iiop/rmiiiop2.html#1071450
    >
    After the first attempt to load this, Tomcat would complain because the
    weblogic.jar contains the javax.servlet package, so I exploded the
    weblogic.jar file, renamed javax/servlet to javax/servlet.x, and then
    rejarred the file. This file was placed into the WEB-INF/lib directory.
    This is otherwise a default Tomcat 4.1.18 binary package.
    Here's the WAR file contents:
    ./META-INF/MANIFEST.MF
    ./WEB-INF/classes/com/pfizer/ecms/as/CustomizationSession.class
    ./WEB-INF/classes/com/pfizer/ecms/as/CustomizationSessionHome.class
    ./WEB-INF/lib/wlsx.jar <-- Edited weblogic.jar
    ./WEB-INF/web.xml
    ./test.jsp
    This is the contents of the test.jsp:
    <%@ page language="java" %>
    <%@ page import="javax.naming.*" %>
    <%@ page import="com.pfizer.ecms.as.*" %>
    <%
    try{
    System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
    System.setProperty(Context.PROVIDER_URL, "t3://localhost:7001");
    InitialContext ctx = new InitialContext();
    CustomizationSessionHome csth = (CustomizationSessionHome)
    ctx.lookup("CustomizationSession");
    CustomizationSession cst = csth.create();
    catch (Throwable t) {
    System.out.println(">>>t = " + t);
    t.printStackTrace(System.out);
    %>
    <HTML>
    <BODY>
    This is the jsp.
    </BODY>
    </HTML>
    Similar code to this has been working for us for 3 years so far.
    When I try and load the JSP, it dumps a stack trace. Here's the relevant
    bits up to the Tomcat container:
    t = java.lang.NoClassDefFoundError: weblogic/rmi/extensions/server/Stubjava.lang.NoClassDefFoundError: weblogic/rmi/extensions/server/Stub
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at
    weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLo
    ader.java:431)
    at
    weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.
    java:169)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:217)
    at
    weblogic.utils.classfile.utils.CodeGenerator.generateClass(CodeGenerator.jav
    a:71)
    at weblogic.rmi.internal.StubGenerator.getStubClass(StubGenerator.java:672)
    at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:712)
    at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:699)
    at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:76)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.newRootNamingNodeStub(WLInitia
    lContextFactoryDelegate.java:486)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.newRemoteContext(WLInitialCont
    extFactoryDelegate.java:449)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.newContext(WLInitialContextFac
    toryDelegate.java:345)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialCon
    textFactoryDelegate.java:308)
    at
    weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialCon
    textFactoryDelegate.java:234)
    at
    weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFact
    ory.java:135)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
    at javax.naming.InitialContext.init(InitialContext.java:219)
    at javax.naming.InitialContext.<init>(InitialContext.java:175)
    at org.apache.jsp.test_jsp._jspService(test_jsp.java:51)
    What is interesting about this is that the system could "see"
    weblogic.utils.classloaders.GenericClassLoader, but THAT class could not
    find weblogic.rmi.extension.server.Stub, even though they are, ideally, at
    the same level within the Tomcat imposed hierarchy of classloaders.
    Unfortunately, we don't quite know where in that hierarchy each class is
    placed.
    Now, the culprit may well be java.security.SecureClassLoader (or, actually,
    the java.lang.ClassLoader.defineClass0), which is very high up in the
    hierarchy trying to load a the result of the StubGenerator, only to find
    that an associated class, weblogic.rmi.extensions.server.Stub, was "not
    found" because it only existed deep in the Tomcat hierarchy.
    One way that I tried to get around this was to start taking selective bits
    of of weblogic.jar and put them on the system CLASSPATH used by Tomcat when
    it starts up.
    This gets us farther along, in that more classes seem to load without
    getting the ClassDefNotFound error, but it finally leads us into this
    exception:
    The error is, with a small bit of stack dump:
    weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Environment not
    found on thread ]
    at
    weblogic.jndi.internal.NamingNodeReplicaHandler.<init>(NamingNodeReplicaHand
    ler.java:150)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces
    sorImpl.java:39)
    at
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc
    torAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
    at java.lang.Class.newInstance0(Class.java:306)
    at java.lang.Class.newInstance(Class.java:259)
    at
    weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectIn
    putStream.java:90)
    snip
    The relevant starting point is toward the middle of the stack trace:
    at
    weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:106
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:125)
    at
    com.pfizer.ecms.as.DataImporterSession_aiw0oz_HomeImpl_810_WLStub.create(Unk
    nown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    .java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at com.pfizer.ecms.com.AppServer.createInstance(AppServer.java:163)
    at com.pfizer.ecms.com.AppServer.getDataImporterSession(AppServer.java:231)
    at
    com.pfizer.ecms.ws.ECMSActionServlet.testBeans(ECMSActionServlet.java:1662)
    at
    com.pfizer.ecms.ws.ECMSActionServlet.initOther(ECMSActionServlet.java:62)
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
    Now, according to the Weblogic documentation, the AssertionError exception
    "is impossible". Well, that's my job they say, doing the impossible.
    Minimally, it's a meaningless message to me and pretty much stops me cold.
    Right, it's not really meant to be meaningful because customers "should"
    never see these assertions.
    I have seen other discussions about Tomcat and how it's not J2EE, etc, and
    perhaps my expectations that this will work are too high. My concern with
    that is simply that in our case, Tomcat is a Fat Client no different from
    "any other Java application". We just use Tomcat to talk to beans rather
    than a custom client. The difficulty, it seems, is in the complexities of
    the Tomcat class loaders interoperating with the expectations of Weblogics
    classes et al.
    I've got a small application that does exactly what Tomcat wants to do, so
    "weblogic works", except of course, in Tomcat.
    So, in the end, I'm curious if others have some data on getting these two
    system cooperating. If anyone has any other ideas on how to use Tomcat as a
    client of Weblogic 8 that utilizes techniques besides replacing Tomcat
    (which is not an option at the moment) I'd like to hear those as well. I
    have been fighting this for days, and tried several things, but nothing
    "obvious" seems to help.
    Weblogic 8 has a "thin client" jar, but it's only useful for RMI rather than
    T3, plus it's still not clear how we'd go about rewriting the interfaces to
    support that versus the standard EJB interfaces already created for the
    beans.I'm not sure I follow you here. You always write to RMI interfaces.
    The question is what protocol (eg T3, JRMP, IIOP) will actually run RMI.
    By default WLS uses its own protocol (t3), but most customer apps
    should run without change over IIOP.
    I'd really recommend going the thin client route. Otherwise I fear
    you'll end up with a heavily modified weblogic.jar and headaches when
    you try to install a service pack etc.
    -- Rob
    >
    Any assistance greatly appreciated.
    Regards,
    Will Hartung
    ([email protected])

  • Importing classes to CORBA-client fails

    Hi!
    I'm trying to compile a simple CORBA-client but importing the classes fails.
    Test.java:1: package org.omg does not exist
    I'm running j2se 1.4 and j2ee 1.3.1
    My classpath:
    C:\Program Files\jdkee\lib\j2ee.jar;C:\j2sdk\jre\lib\rt.jar;C:\j2sdk\lib\dt.jar;C:\j2sdk\lib\tools.jar;C:\j2sdk\jre\lib\ext\dnsns.jar;C:\j2sdk\jre\lib\ext\ldapsec.jar;C:\j2sdk\jre\lib\ext\localedata.jar;C:\j2sdk\jre\lib\ext\sunjce_provider.jar;C:\j2sdk\lib\resin-ejb.jar;C:\j2sdk\lib\resin.jar;C:\java\JC\Inl2\Inl2Bean.jar;C:\Program Files\jdkee\lib\jhall.jar;C:\Program Files\jdkee\lib\ejb10deployment.jar;C:\Program Files\jdkee\lib\j2ee-ri-svc.jar;C:\Program Files\jdkee\lib\j2eetools.jar
    Any help would be appreciated.
    Henrik

    The problem is your class path.
    Most likely either you do not have it set at all or you are pointing at a child directory rather than the root directory.
    The package resides in the same file as the Servant,Same file? You can't have two packages in the same file. And if you meant 'directory' then you might as well move it, because trying to keep two packages in the same directory, although possible, is more trouble than it is worth.

  • Corba Client to a Session Bean deployed in OC4J

    Hello!
    I'm looking for an example showing how to make a call to some EJBs deployed in OC4J (Orion) through a plain CORBA call in java?... Is this possible? I know that regular EJB uses RMI over IIOP based on CORBA... is it possible to use only the CORBA/iiop layer to communicate with an EJB deployed in OC4J?
    If you have any corba client code as an example, it would be very appreciated,
    Thanks!
    null

    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Pierre ([email protected]):
    Hello!
    I'm looking for an example showing how to make a call to some EJBs deployed in OC4J (Orion) through a plain CORBA call in java?... Is this possible? I know that regular EJB uses RMI over IIOP based on CORBA... is it possible to use only the CORBA/iiop layer to communicate with an EJB deployed in OC4J?
    If you have any corba client code as an example, it would be very appreciated,
    Thanks!
    <HR></BLOCKQUOTE>
    I am reasonably certain that OCJ4 doesn't support RMI over IIOP, only ORMI, which is the native wire protocol from Orion, and won't support this until they release the final version of EJB 2.0 support in OCJ4.
    Translating the CORBA/RMI calls to EJB/ORMI calls would be a tad bit on the tricky side. I believe you can do what you want with something like Borland's App server...
    null

  • What integration is really possible with Corba clients and servers

    I find the RMI/IIOP sections of the docs a little confusing or maybe just lacking a few "clear statements".
    I have a few specific questions:
    1. What version of CORBA/IIOP do you support? Fully support?
    2. Do you have your own ORB, or rely on the JDK? or other?
    3. Can I use WLS to originate a call out to a CORBA server? without running my own ORB inside the WLS process?
    Simple, concise answers will be appreciated by the CORBA challenged people like myself. If these questions are addressed in the docs, please point me there as well.
    Thanks, Craig

    Don Ferguson wrote:
    Craig Macha wrote:
    I was hoping to get some answers from BEA through the newsgroups. If the questions aren't appropriate for this forum, please let me know. If you are looking for anwsers, let me know. If the questions aren't clear let me know. Please, just don't ignore them though. Thanks, CraigThe questions are clear enough, it's just that our RMI/IIOP expert has been
    extremely busy, and hasn't been monitoring the group. I'll do my best to
    answer them, but hopefully you'll get a more authoritative answer soon.Sorry... my fumble...
    >
    >
    1. What version of CORBA/IIOP do you support? Fully support?
    We require IIOP 2.3, because we need OBV.We support communication with RMI objects over IIOP; we support iiop version 1.0. Generally, this takes CORBA 2.3 on the client.
    >
    >
    2. Do you have your own ORB, or rely on the JDK? or other?
    We do not have our own ORB. We rely (to some degree) on the IIOP
    implementation present in the 1.3 JDK.This correct: we do not use an ORB; we use the JDK's implementation of OBV marshaling streams, but nothing else.
    >
    >
    3. Can I use WLS to originate a call out to a CORBA server? without running
    my own
    ORB inside the WLS process?Yes. In general, all calls (in or out) must conform to the RMI-IIOP restrictions, namely, the interfaces must be defined as RMI interfaces. In addition, WLS stubs must be available on the WLS side when a call is initiated. Name resolution is performed either by binding the corba server in the WLS
    JNDI tree or by looking up the corba server in a COS Naming server, although the former avoids creating an orb in the WLS instance.
    >
    >
    I believe so. I don't know what the caveats are, if any.
    -Don

Maybe you are looking for

  • PO Document type

    Hi, How to configure to get only the required document types for Purchase order Regards, Sattuj

  • Problem with primary key violation in master-detail screens

    Hi, I found a problem/bug in master-detail screens in which the PK of the detail table consist of the PK of the master table and an additional column. E.g. a manually entered sequence 'in parent'. I will use the following simple scenario to explain t

  • Unable to download apps from market

    I am using ipad 2 wifi 3g,4 days ago i updated latest ios 6.0 now i am unable to download any apps when it start downloading it stuck on waiting only plz heip

  • Bar Graphs in Illustrator with Numbers within the bars

    Does anyone know if an easy way to add the numbers/values into each bar in a bar graph and have them appear automatically when importing data from excel? I'm working w Illustrator CC. HELP! I'm doing 100 graphs and need to find an easy solution. Than

  • Oracle 9.2.0 on SuSE 8.0 How to link

    http://www.visi.com/~mseberg/o9howto.html