Use JFreeChart or Component object with RMI

I am trying to pass a JFreeChart object or a java.awt.Component object from a server to a client. I thought RMI would be the solution, but I get a "java.lang.NoClassDefFoundError: org/jfree/chart/JFreeChart" error when trying to run the server. I believe the problem is that the JFreeChart is not an Interface and so can not be used in a Remote Invocation. So, the problem would be the same with a Component Object.
JFreeChart and Component are Serializable object, so I thought there may be a way to remotely use them or pass and recreate them from a server to a client.
Does someone can help me here to figure out what I could do?

sure you can pass instances through RMI, but that doesn't prevent you from needing the required jars for the product on both client and server.
So make sure both client and server have the jfree jars installed in the classpath of their applications when you run the application.

Similar Messages

  • Defining non-Component objects with size and location using Swing

    I am attempting to write a program which will be able to manipulate (display, move, resize) objects in a Swing window which are not necessarily components. These "Window"s are defined by a Window interface which defines a Window as any object which has a size and a location (effectively a rectangular area). This would ideally allow me to perform operations such as drawing an arbitrary picture on a Jpanel, for example, wrap that drawing in a rectangular area, and then be able to resize it/move it about as a separate panel. In order to do this I believe I would have to override the paint() method, although I'm not completely sure. If anyone has any suggestions of a proper way to override the method or know a proper way to attack this problem, I would greatly appreciate it.
    Thanks,
    Adrian

    It's hard to say since it's not quite clear what you're doing but:
    1) if these objects are not necessarily components, that's fine, but you're not trying to add them to the basic GUI framework, are you? If you want to do something like this, then probably the best thing is to have a particular component that knows how to handle these objects, and then have a clean separation between components and non-components at that level. So this component would maintain and display a collection of those non-component objects, but no other component would be expected to know anything about them, and the non-component objects wouldn't know about any components at all.
    2) it might be helpful to give all the non-component objects a method that looks like this:
    void drawSelf(Graphics g);and that this method would tell the object to draw itself on that Graphics object. The object might also have an "offset" value, essentially an x,y position, and it would draw itself relative to that position.

  • IllegalAccessError passing object with RMI

    Hi,
    I am playing with RMI at the moment.
    I have a Remote class that implements a Remote interface
    The interface has one method which the class implements and this is to get a TestSerial object.
    If I run without using a Securitymanager then there are no problems.
    When I do use the SecurityManager then there is an error.
    This error remains even if set the permissions in the policy file to java.security.AllPermissions
    Does anyone know why this is?
    thanks in advance,
    J
    //Start the server....
    java -Djava.security.policy=policy HelloServer
    In main....
    HelloImpl bound in registry....
    //Run the client
    java -Djava.security.policy=policy HelloClient
    Exception in thread "main" java.lang.IllegalAccessError: tried to access TestSerial from class $Proxy0
    at $Proxy.getTestSerial(Unknown Source)
         at HelloClient.main(HelloClient.jav:23)
    * Remote interface
    public interface Hello extends java.rmi.Remote {
        TestSerial getTestSerial() throws java.rmi.RemoteException;
    * Remote class
    public class HelloImpl implements Hello {
      public HelloImpl() {
      public TestSerial getTestSerial(){
        return new TestSerial();
    * Server class
    import java.io.*;
    import java.rmi.*;
    import java.rmi.server.*;
    import java.rmi.registry.*;
    public class HelloServer {
      public HelloServer() {
      public static void main(String args[]) {
        System.out.println("In main....");
        if (System.getSecurityManager() == null) {
          System.setSecurityManager(new SecurityManager());
        try {
          HelloImpl obj = new HelloImpl();
          Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
          Registry registry = LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
          registry.bind("Hello", stub);
          System.out.println("HelloImpl bound in registry...."); 
        catch (Exception e) {
          System.out.println("HelloImpl exception: " + e.getMessage());
          e.printStackTrace();
    * Client class
    import java.rmi.*;
    import java.rmi.registry.*;
    import java.io.*;
    public class HelloClient {
    public static void main(String args[]) {
       if (System.getSecurityManager() == null) {
         System.setSecurityManager(new SecurityManager());
       try {
          Registry registry = LocateRegistry.getRegistry();
          Hello obj = (Hello) registry.lookup("Hello");
          TestSerial x = obj.getTestSerial();
          System.out.println(x.getName());
        catch (Exception e) {
          System.out.println("HelloClient exception: " + e.printStackTrace();
    * TestSerial class
    class TestSerial implements java.io.Serializable {
      public TestSerial(){
      public String getName(){
        return "TestSerial";
    * Policy file
    grant codeBase "file:." {
      permission java.net.SocketPermission "*:1024-", "accept,connect";
    };

    class TestSerial implements java.io.Serializable {
    public class TestSerial implements java.io.Serializable {

  • Using a polymorphic view object with binding

    Hi,
    I'm hoping there's something simple I'm missing when trying to setup up the bindings for a ADF/struts page using a polymorphic view object.
    I'm using Entity and VO polymorphism to create a Question which has different types - boolean, multi-choice, likert, etc. I have the various question types created as sub type entity and view objects and added to the app module - when added to the app module the question types are subtypes of QuestionView so they don't actually appear in the Data Controls palette. This setup is like that used in Steve Muench's examples (blog at http://radio.weblogs.com/0118231/stories/2003/02/06/constructingTheDesiredEntityInAPolymorphicViewObject.html and the related undocumented one)
    My question is, how do I get to the data and have jdev create the necessary bindings for the extra attributes the subtype questions have? Since they don't appear as available data controls I can't create a binding iterator or anything for them - short of adding them as spearate view objects (which destroys the whole point of using polymorphism in this case) is there a way to do this?
    Really, the only reason I want to use the polymorphism is so I can have different types of entity validation depending on the type. Should I just simplify this to be one entity object with one VO and put all the validation into "if else's" based on a discriminator?
    Assistance appreciated...
    - Nathaniel

    How else are you planning to associate a JUTableBinding to the 'common' iterator containing all four types of rows and then selectively display them? Perhaps you'd need a custom model over the JUTabelModel that'd filter the rows out.
    I'm not sure if all that trouble is worth it given that your datasets (as far as mentioned in this post) are not large. If these tables/data has to be refreshed/executed a number of times, then you may see the overhead of four queries otherwise it should be fine as database is always faster in filtering rows than doing that in memory.

  • How can I use methods of an object with private instantiation in my ABAP?

    Hello all,
    What is the work-around on using methods of an object marked as private instantiation? I tried to use concepts of <b>INHERITANCE</b> or <b>FRIENDS</b> of an object (<u>BCONTACT </u> in my case - a SAP standard object) but it did not work, or at least, I do not know how to properly code the statements in my ABAP program.
    Any code samples, other ideas?
    Your help is greatly appreciated.

    I am closing this question as there has been no answer.
    Message was edited by:
            Goharjou ardavan

  • Using objects with RMI

    I've successfully (well, almost) programmed an RMI client and server...and amazing they work (happy chappy) ... most of the time. The problem is of the 8 methods I've defined in interfaces 6 of them are of return type String, the other two are objects I've defined. The problem is these objects don't transfer through the system - just throw a RemoteException every time either one of these methods is invoked. The first , and well, only, thing I could think of was to make sure these objects were Serializable but that didn't have an effect...so what's the solution?
    tia

    package messenger.coreMessenger.contact;
    import java.io.Serializable;
    public class Contact implements Serializable {
      private final String email;
      private String displayName;
      private boolean status;
      private int displayIcon;
      public Contact(String email, String displayName, int displayIcon) {
        this.email = email;
        this.displayName = displayName;
        this.status = false;
        this.displayIcon = displayIcon;
      public String getEmail(){
        return email;
      public String getName(){
        return displayName;
      public int getDisplayIcon(){
        return displayIcon;
      public boolean isOnline(){
        return status;
      public void setName(String displayName){
        this.displayName = displayName;
      public void setDisplayIcon(int displayIcon){
        this.displayIcon = displayIcon;
      public void logOn(){
        this.status = true;
      public void logOff(){
        this.status = false;
    }this is one of the return classes - the other one is not too disimilar so to save space I wont bother posting that...

  • Use of Complex Oracle Object with JDBC

    How can I use Oracle Object(or PL/Sql type) with JDBC
    I have a structure of record with some attributes and table of another attribute.
    My types are defined as follows !
    <code>
    CREATE TYPE EMPLOYEE_GRADES AS TABLE OF VARCHAR2(50)
    CREATE TYPE EMPLOYEES AS OBJECT(EmpName VARCHAR2(50), EmpGrades Employee_Grades)
    </code>
    My custom object might have the following structure (or should it be different)
    <code>
    public class EmpColl implements CustomDatum, CustomDatumFactory
    -- other stuff ----
    /* fields */
    public String empName;
    public Collection empNos;
    </code>
    I want to pass an variable of type EMPLOYEES to an procedure.
    Thanx in Advance
    Chetan
    [email protected]

    <code>
    CREATE TYPE EMPLOYEE_GRADES AS TABLE OF VARCHAR2(50)
    CREATE TYPE EMPLOYEES AS OBJECT(EmpName VARCHAR2(50), EmpGrades Employee_Grades)
    </code>The easiest is to use JPublisher (which comes with the SQLJ distribution).
    Say:
    jpub -user=username/password -sql=EMPLOYEES:Employees,EMPLOYEE_GRADES:EmployeeGrades
    You will get (among others) the Java files Employees.java and EmployeeGrade.java. Go ahead, compile and use them.
    Look in [Oracle Home]/sqlj/demo/jpub for a number of additional examples, and in the JPublisher User's Guide for background info.
    The next (9.2) release of JPublisher will also provide some support for accessing legacy PL/SQL types from Java.

  • Tutorial on using a non-database object with ADF?

    I'm just starting with ADF and could use some advice. I'm making my way through the first ADF 11g tutorial ("Developing Rich Web Applications with Oracle ADF") and just want to make sure I'm headed in the right direction.
    While the tutorial is an excellent step-by-step explanation of how to bind database information to forms, I'm trying to figure out how to create an ADF web page that gets its fields created from an object (e.g. Java POJO). Is there a tutorial on this (Java object vs database object form creation)?
    Thanks

    Hi,
    See if the below link helps:
    http://technology.amis.nl/blog/3802/adf-11g-model-driven-display-properties-in-pojo-based-data-controls
    Sireesha

  • Can I use subtype/supertype Entity Object with JHeadstart ?

    Hi,
    I am using Generalization on our entity object design, i,e : Employee(SuperType), Hourly_Employee(SubType), SalariedEmployee(SubType), Consoltant(SubType). The attributes attached below.
    All SubTypes will EXTEND the supertype : Employee.
    The questions are :
    Can JHeadstart handle the generalized entity objects ?
    How can the UI look like with JHeadstart ?
    Thank you for your help,
    Krist
    Supertype : Employee
    Employee_Number
    Employee_Name
    Address
    Employee_Type
    Date_Hired
    SubType : Hourly_Employee
    Hourly_Rate
    SubType : Salaried_Employee
    Annual_Salary
    Stock_Options
    SubType : CONSULTANT
    Contract_Number
    Billing_Rate

    Krist,
    If I understand you correctly you want to have a number of View Object attributes in a page to be accessible through 'subtabs', and want the correct subtab to be shown when the 'discriminator' field is changed. I am sorry for the confusion, I got thrown off track with all the super-subtype Entity details, but in the UI you are only dealing with ViewObject (usages), and not Entity Objects.
    Anyway, we can not generate 'subtabs'. There is a feature on our 'Enhancement list' to make the Regions have a 'stacked' property, which I think would come pretty close to what you need: you could group ViewObject Atributes together in Regions, and 'stacked' Regions would be generated as tab pages. We have not implemented this feature yet, and even if we had, you would have to change it post-gen because in your case, you would not want the end user to be able to 'switch tabs', but only a change of the 'discrimitator' field should do that.
    We have shipped some templates, though, for creating subtabs for child groups. Perhaps you could take a look if some of that code could be useable for your.
    I would suggest the following approach:
    1.) In the application structure file, create 'Regions' for all subtypes, and in the BC4J Property Editor, assign the 'subtype' attributes to the corresponding Region.
    2.) Regenerate the page. Now you should have a separate 'header' element for each subtype, containing the appropriate attributes.
    3.) Now you will need to transform those 'headers' to 'subtype tabs'. You could do that by borrowing code from our 'tabbed child' templates, or, alternatively, you could use a similar, Javascript-based technique that we use for switching between Quick Search and Advanced Search.
    4.) Finally, you should device a mechanism to change the active tab when changing the 'discriminator' column in the area above the tabs, with the supertype fields.
    Hope this helps,
    Peter Ebell
    JHeadstart Team

  • Using a Statefull Session Bean with RMI on Multiple JSP pages

    Heya all,
    i have a JBoss server running with a statefull bean on it. I want to use it on my JSP pages. But every time I start my JSP-page a NEW INSTANTION of the bean is created! For each user using my page, I want ONE bean.
    Is there anyway to do this? ANything with the sessioncontext?
    I can do it with local beans, using the simple tags in the JSP-page, but they do not work for Remote Beans.
    (I use JNDI)

    hi,
    statefull session beans are client session specific. the instance will exists if client session exits.
    now since u are loading the jsp page again in the other browser, a new instance will be associated with the current session.
    hope it will work.
    sameer

  • "Transfering objects" with RMI

    Hi!
    I have a general question concerning the capabilities of RMI. The server provides a interface that creates instances of certain classes and returns it to the client.
    the corresponding method in the interface looks like this
    public Service getService () throws RMIException
    So calling the method via RMI works fine. Then I tried to make a subclass of Service called ExtService and changed the implementation of the getService method in that way, that I create an instance of ExtService and return it. The problem then was, that at the client the ExtService class is not available and the call failed.
    Now my question: is it also possible to pass such subclasses via the rmi mechanism in that way, that the client only knows the base class (here Service) but can receive subclasses via the RMI call??
    thanx, Ingo

    Sounds like you changed the return value from public Service getService();to public ExtService getService();right?
    Wrong. in getService() you simply return the ExtService instance (as Service - the base class).
    You can't change the implementation to return the ExtService, because, as you found out,
    the client side has no idea what ExtService is. It can BE an ExtService, but the client
    has to "see" Service. ExtService is still then free to override behaviour of any methods.

  • Paging issues using a dynamic view object...

    I am working on an application that uses JAG to generate JSP pages, i had the requirement to use dynamic view objects where the view object query is generated at runtime. The rest of the application is more or less the same... I used the defult functionality provided by TableScrollButtons.jsp file for paging. Now the problem im facing is that while the '>' and '<' buttons are working fine, i cant seem to navigate to the pages using the drop down...
    With the default handler, whenever i select the range the range displayed remains the same ie 1-10, 10 being the rangesize, but the rows are refreshed with values from the next page. Also, if the next page is the last and is incomplete, then the rows are pushed in from the bottom, so that the last page is always full...I tried the tuning panel in the view object edit dialogue and all settings are fine (i think)...could anyone please tell me what i am doing wrong??

    could it be because i am using a dynamic view object with dynamic bindings? i am using the preparemodel() method in the action as follows...
    protected void prepareModel(DataActionContext ctx) throws Exception {
    inferRangeBindingIfUnset(ctx);
    ctx.getBindingContainer().setEnableTokenValidation(false);
    String sql = ctx.getHttpServletRequest().getParameter("sql");
    String cost=ctx.getHttpServletRequest().getParameter("CostCostCent");
    String event=ctx.getHttpServletRequest().getParameter("event");
    if (sql != null && event == null) {
    setupDynamicQueryAndDynamicBindings(ctx,sql.substring(1),cost);
    if (retrieveOnlyCurrentPageFromDatabase()) {
    ViewObject vo = getIterForPaging(ctx).getViewObject();
    if (vo.getAccessMode() != ViewObject.RANGE_PAGING) {
    vo.setAccessMode(ViewObject.RANGE_PAGING);
    // if(event==null)
    super.prepareModel(ctx);
    ctx.getBindingContainer().setEnableTokenValidation(true);
    if (ctx.getEvents() == null || ctx.getEvents().size() ==0) {
    setPage(ctx,1);
    setLastPage(ctx,getIterForPaging(ctx).getRowSetIterator().getEstimatedRangePageCount());
    else if(event.equals("setRangeStart")) {
    setPageFromRequest(ctx);
    }

  • Why and how to use events in abap objects

    Dear all,
      Please explain me why and how to use events in abap objects with real time example
    regards
    pankaj giri

    Hi Pankaj,
    I will try to explain why to use events... How to use is a different topic.. which others have already answered...
    This is same from your prev. post...
    Events :
    Technically speaking :
    " Events are notifications an object receives from, or transmits to, other objects or applications. Events allow objects to perform actions whenever a specific occurrence takes place. Microsoft Windows is an event-driven operating system, events can come from other objects, applications, or user input such as mouse clicks or key presses. "
    Lets say you have an ALV - An editable one ...
    Lats say - Once you press some button  you want some kind of validation to be done.
    How to do this ?
    Raise an Event - Which is handled by a method and write the validation code.
    Now you might argue, that I can do it in this way : Capture the function code - and call the validate method.
    Yes, in this case it can be done.. But lets say .. you change a field in the ALV and you want the validation to be done as soon as he is done with typing.
    Where is the function code here ? No function code... But there is an event here - The data changed event.
    So you can raise a data changed event that can be handled and will do the validation.
    It is not user friendly that you ask the user to press a button (to get the function code) for validation each time he enters a data.
    The events can be raised by a system, or by a program also. So in this case the data changed event is raised by a system that you can handle.
    Also, Lets say on a particular action you want some code to trigger. (You can take the same example of validation code). In this case the code to trigger is in a separate class. The object of which is not available here at this moment. (This case happens very frequently).
    Advantage with events : Event handlers can be in a separate class also.
    e.g : In the middle of some business logic .. you encounter a error. You want to send this information to the UI (to user - in form of a pop up) and then continue with some processing.
    In many cases - A direct method call to trigger the pop up is not done. Because (in ideal cases) the engine must not interact with UI directly - Because the UI could be some other application - like a windows UI but the error comes from some SAP program.
    So - A event is raised from the engine that is handled in the UI and a pop up is triggered.
    Here -- I would have different classes (lets say for different Operating Systems). And all these classes must register to the event ERROR raised in application.
    And these different classes for different Operation systems will have different code to raise a pop-up.
    Now you can imagine : If you coded a pop-up for Windows (in your application logic) .. it will not work for Mac or Linux. But of you raise a event.. that is handled separately by a different UI classes for Win, Linux or Mac  they will catch this event and process accordingly.
    May be I complicated this explanation .... but I couldn't think of a simpler and concrete example.
    Cheers.
    Varun.

  • Active X object with a program to see my USB camera alive

    I´d like to use an active X object with a program to see my USB camera alive. I don't know if it is possible, does anyone could help me to do it?
    I have a program to use with my camera but I don't know what object I have to insert in the Active X container to play it.
    It could be another program, you suggest.
    I tried another solution before but it didn´t work: http://forums.ni.com/ni/board/message?board.id=170&message.id=397511
    So I thought it could be done in this way.
    Thanks in advance.
    Celia

    Thank for your help, but it didn´t work.
    But I've got a way using Imaq, it is an attchment. The difference from the others is the Imaq USB PropertyPage.vi. Even if I cancel the dialog box it works, but it don't work if I don't use it. As I don´t want the dialog box opens I am figuring out how to eliminate the Imaq USB PropertyPage.vi, what kind of configuration i have to do...
    Thanks again,
    Celia
    Attachments:
    TesteInternet.vi ‏41 KB

  • 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

Maybe you are looking for

  • Primary desktop is no longer recognized as primary

    So i sync'd my phone few days ago on my desktop and it was perfect. today, i went to do another full backup/sync and it says it was previvously sync'd with Jason-Desktop. this is my current computer name. computer has not changed. i did however make

  • Site can't be viewed with IE, works with Firefox and Chrome

    I have a family site that works fine with Firefox and Chrome, but with when we created a new page and uploaded it, it can't be viewed with IE. http://www.thetravelintexans.com/states.htm was modified to add the very last picture in the last row, it w

  • ITunes audiobooks

    Can audiobooks (eg. Harry Potter which is soooo expensive) purchased from iTunes music store be loaded on multiple iPods similar to those purchased from audible.com?

  • ›Cut‹ imported FLV for SWF's output length

    Hello! I'd preferred to post my question on a better place, but I did not see one (as stupid as I am) . My question is a simple one. I got a video (als FLV) and emebed it into an AIR project. Now let my video has have an opening and maybe a closing s

  • My hex codes aren't sticking! Help!

    I need help! I want to put a particular hex code in an object. When I paste the hex code in the color picker of my object it changes to the color I want. After I choose another object and then go back to the particular object with my hex code its a d