URGENT Servlet with RMI ConnectionException

i have an object with two personalities: Servlet and RMI.
However when i invoke it using the web browser, the following exceptions pop out:
<!--
java.rmi.ConnectException: Connection refused to host: 172.20.134.24; nested exc
eption is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:567)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at IncomingSMSController.init(IncomingSMSController.java:43)
at IncomingSMSController.init(IncomingSMSController.java:35)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:916)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.jav
-->
the way i code my program is as follow:
<!--
     protected void init()throws ServletException{
          try{
               System.out.println("\n<<IN>>");
               Registry reg=LocateRegistry.getRegistry();
               System.out.println("\n<<"+reg+">>");
               reg.rebind("ControllerInterface",this);
               bound=true;
               System.out.println("Server now bound to IncomingSMSController");
          }catch(Exception e){
               System.out.println("Error binding");
               e.printStackTrace();     
public static void main(String[] args)throws RemoteException,ServletException{
Controller con=new Controller();
con.init();
-->
Anyone please help thanks. i have been asking this question here for many time and no one reply may i know at least why?
thanks.

Hi,
I see the java doc of LocateRegsitry and you can read :
LocateRegistry is used to obtain a reference to a bootstrap remote object registry on a particular host (including the local host), or
to create a remote object registry that accepts calls on a specific port.
Note that a getRegistry call does not actually make a
connection to the remote host. It simply creates a local reference to
the remote registry and will succeed even if no registry is running on
the remote host. Therefore, a subsequent method invocation to a remote
registry returned as a result of this method may fail.
So may be the exception, throw when you call rebind, is due to non active registry in local machine. You can try to execute your servlet
after activate your registry via LocateRegistry.createRegistry(int port)
Hope this help

Similar Messages

  • How can i Use SERVLET with RMI to avoid trust certificate

    I know that for begining RMI, you must launch the server and the client.
    for the server i use :
    java -Djavax.net.ssl.trustStore=server.keystore -Djavax.net.ssl.keyStore=server.keystore -Djavax.net.ssl.keyStorePassword=server TestServer
    for the client I use :
    java -Djavax.net.ssl.trustStore=client.keystore -Djavax.net.ssl.keyStore=client.keystore -Djavax.net.ssl.keyStorePassword=client TestClient
    and all work fine.
    but i want to use a servlet for rmi client and i wrote this:
    public class AppelServlet extends HttpServlet
         public void doPost(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException
              try
                   System.out.println("Registering secure RMI socket factory ...");
                   java.rmi.server.RMISocketFactory.setSocketFactory(new SecureRMISocketFactory());
              TestRemote test = (TestRemote) Naming.lookup("rmi://127.0.0.1:7123/TestClient");
    String reponse=test.toLowerCase("HELLO WORLD");
                   System.out.println("la reponse est : "+reponse);
         catch (Exception e)
              System.out.println("test client exception: " +e);
    PrintWriter out = response.getWriter();
              response.setContentType("text/html");
    and i have the following error on tomcat:
    Registering secure RMI socket factory ...
    test client exception: java.rmi.ConnectIOException: error during JRMP connection
    establishment; nested exception is:
    javax.net.ssl.SSLHandshakeException: Couldn't find trusted certificate
    i think i must precise how to indicate the truststore like in the first case.
    help me please.
    hamdi

    Hi,
    Try doing the following steps.
    Assuming you have a certificate obtained
    Export the certificate into a .cer file.
    On IE, goto tools->internet options->content->certificates, and export to a .cer file.
    Using keytool of java import the certificate to the store that can be used doing the following command.
    keytool -import -alias <ailas> -file < .cer filename> -keystore <storename here>
    set the javax.net.ssl.trustStore and javax.net.ssl.trustStorePassword properties at the command prompt using the command below.
    java -Djavax.net.ssl.trustStore=<storename> -Djavax.net.ssl.trustStorePassword=<password> <classname>
    Let me know if this helped.
    Also take a look at this link for using RMI with SSL
    http://java.sun.com/products/jdk/1.2/docs/guide/rmi/SSLInfo.html
    Regards,
    Roopasri Vittal
    Developer Technical Support
    Sun Microsystems
    http://sun.com/developers/support

  • Urgent - Servlet with Property file

    Hi all,
    I have a servlet which ueses a property file to get the Database information such as Driver, URL etc. The content of the property file is
    dbDriver=sun.jdbc.odbc.JdbcOdbcDriver
    dbDSN=jdbc:odbc:Sundar
    dbUser=
    dbPassword=
    The servlet has the following code to get connection with the DB
    Connection con;
    Statement stmt;
         String s = null;
         String dbDriver="";
         String dbDSN="";
         String dbUser="";
         String dbPassword="";     
         public void init()
         try {
    String propsfilename = "db.props";
    InputStream is = getClass().getResourceAsStream("/" + propsfilename);
         Properties p = new Properties();
         p.load(is);
         dbDriver = p.getProperty("dbDriver");
         dbDSN = p.getProperty("dbDSN");
         dbUser = p.getProperty("dbUser");
         dbPassword = p.getProperty("dbPassword");
    } catch (Exception e) {
              throw new RuntimeException("UNABLE TO INITIALIZE, EXITING...");
    public String DataBaseConnection()
         init();          
    try
         Class.forName(dbDriver);               
         con = DriverManager.getConnection(dbDSN,dbUser,dbPassword);
    stmt = con.createStatement();
    catch (ClassNotFoundException e1)
    e1.printStackTrace();
    catch (SQLException e2)
    e2.printStackTrace();
    The following exception is thrown when i access the servlet through the browser.
    java.lang.ClassNotFoundException: sun/jdbc/odbc/JdbcOdbcDriver
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:120)
         at DataTrans.DataBaseTrans.DataBaseConnection(DataBaseTrans.java:52)
         at sitespider.searchlinks(sitespider.java:207)
         at sitespider.doGet(sitespider.java:42)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
         at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1013)
         at allaire.jrun.servlet.JRunSE.runServlet(../servlet/JRunSE.java:925)
         at allaire.jrun.servlet.JRunNamedDispatcher.forward(../servlet/JRunNamedDispatcher.java:34)
         at allaire.jrun.servlet.Invoker.service(../servlet/Invoker.java:84)
         at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1013)
         at allaire.jrun.servlet.JRunSE.runServlet(../servlet/JRunSE.java:925)
         at allaire.jrun.servlet.JRunRequestDispatcher.forward(../servlet/JRunRequestDispatcher.java:88)
         at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1131)
         at allaire.jrun.servlet.JvmContext.dispatch(../servlet/JvmContext.java:330)
         at allaire.jrun.jrpp.ProxyEndpoint.run(../jrpp/ProxyEndpoint.java:382)
         at allaire.jrun.ThreadPool.run(../ThreadPool.java:272)
         at allaire.jrun.WorkerThread.run(../WorkerThread.java:75)
    I am using the following servers
    IIS 5.0 with JRun 3.1
    Adv tanx
    Sundar

    Hi
    I tested your code . The problem is that the property file have some spaces after the string. Use The trim(); function or check the blank spaces in the property file.
    hope it will help
    Mallesh

  • Applet-Servlet with RMI or HTTP? : for a web based network monitoring tool.

    Hi,
    I need help to make a decision to choose an implementation technique for a tool that I am creating.
    I am creating a utility to display a table of RX and TX bandwidth information in real time from a network device X
    onto a client's web browser.
    I have a JTable based applet to display bandwidth information. However I am running this as a standalone applet. I want
    to create a web based solution (applet/servlet model) to make life easier for the end user.
    As for displaying the bandwidth information, I am using Runtime.exec() function to remote execute commands using ssh/rsh.
    This not only seems to impose a lot of process and network latency overhead, but also seems impractical from a
    security point of view, hence I need a real client/server model to have efficient and secure serialized data transfer across
    the network (through HTTP etc) between the client's web browser and X.
    X has a web server running on it. It essentially is a Linux box (CentOS). I can create a JNLP definition to launch an applet
    from X onto a remote client's web browser. The real problem is: what is the most efficient way to go about the
    servlet implementation? Is it wise to use HTTP get/post? or RMI is the way to go?
    Also I'd appreciate suggestion on any different approaches than what I have in mind above.
    Thanks,
    Rajiv

    Thanks for your time, but I cannot make a front-end in C. It has to be in JSP (or in ASP but I haven't tried yet to program in VBA).
    So that is why I am asking what is the best way of attaching a JSP front-end to the given API.
    PS: Why should I code a .dll to provide a JNI interface for the api? Isn't the JNI interface capable of doing such?

  • Applet-Servlet or RMI - which is better

    We are in the process of developing a swing-applet based system that requires regular interaction with multiple databases residing on more than one database server.
    The options available before us, as we evaluate are:
    a. Use "signed" applets ( as this is going to be essentially an intra-net application) and use JDBC connection to connect to more than one database ( which reside on servers other than the web server).
    b. Use applet - servlet communication - basically, the servlet would establish connection to the databases, directly or through EJB, retrieve necessary database information and pass on the objects to the applet - the front end GUI would be controlled by the applet.
    c. Use RMI
    We would like to have your perspective of the three options, with your experience in this line.
    The questions that come to us are:
    a. If the system is essentially an intra-net application, is it okay to design with "signed" applet mechanism - how far is this method common in the market and acceptable to the clients? Is it true that the signed applet would be able to establish connection to various "identified servers" that are allowed permissions in the security file?
    b. Between applet-servlet and RMI, which is a better method? What should be the factors that need to be considered? Is RMI being widely used or should we be thinking in terms of EJB, eventhough the current project is purely a Java based solution.
    Your input is highly appreciated - thanking in advance for any suggestions and inputs that you may provide.
    Thanks
    Dixie

    Dixie,
    1) IMHO signed applets are not widely used, but you can use
    ordinary applets, which are accessing other resources through
    redirector servlet on server side - I mean ordinary applets
    are prohibited to establish connect to other than it's own server.
    So you will be forced to have special servlet on your server,
    which have access to other resources on other servers - this is a
    way how to avoid applets limitation.
    2) RMI is a heavy solution, because all parameters/objects should
    be serialized over net and if network connection is unreliable
    working with system will be just a nighmare.
    3) If you think that your network connection is unreliable, you can use HTTP protocol between client and server instead of RMI. In this case
    you will have following benefits:
    i) You can still use all of powerness of thick client
    ii) Network unreliability will be defeated
    iii) Sometime if you would like to port your application to a thin
    client it will be done much more easier than in case of RMI
    4) If you would like to use thin client your only problem will
    be poorness of UI - if you can go with it - go ahead! Otherwise
    use thick client with RMI or HTTP depending on quality of network.
    Paul

  • How can i deploy a servlet with eclispe

    Hello,
    will any one of u give me the steps to deploy a servlet with eclipse on portal server(J2EE Engine),
    in help of eclipse they given as, whole webapplication deployement, but that is also giving me a error, the procedure they given is, once we created a .war file for our servlet project we need to refer this to a .Ear file, and then this Ear can be deployed in to the server. Is it the same and only procedure to deploy a servlet with eclipse, or if there is any other method,please give me the steps also.
    when i am deploying with the .Ear file, it is giving the error as,
    Jun 4, 2005 11:34:31 AM /userOut/deploy (com.sap.ide.eclipse.sdm.threading.DeployThreadManager) [Thread[Deploy Thread,5,main]] ERROR:
    [001]Deployment aborted
    Deployment exception : Cannot determine sdm host (is empty). Please configure your engine/sdm correctly !
    but the sdm is working on the server with the same host, and local deployement is also done successfully, but from my system im not able to deploy!
    Thanks&Regards,
    Sireesha.

    Yeah, i am able to see the J2EE engine clusters, there the message server port is given as 3601. becoz scs instance number is 1 here. so it is not the problem,
    the error it is giving as,
    Jun 6, 2005 11:37:28 AM /userOut/deploy (com.sap.ide.eclipse.sdm.threading.DeployThreadManager) [Thread[Deploy Thread,5,main]] ERROR:
    [001]Deployment aborted
    Settings
    SDM host : obtdev9
    SDM port : 50018
    URL to deploy : file:/C:/DOCUME1/sireesha.b/LOCALS1/Temp/temp56446MyServletEAR.ear
    Deployment exception : Server obtdev9 did not accept login request as apiadmin on port 50018 - CmdXmlFactory could not find Top Element within String: "null".
    Inner exception was :
    Server obtdev9 did not accept login request as apiadmin on port 50018 - CmdXmlFactory could not find Top Element within String: "null".
    is this may be the problem with port number?
    i am not knowing what is happening here...
    if you know the exact error based on the error messgae please help me,
    thanks to u for helping in this problem,
    Regards,
    sireesha.

  • URGENT Problem with Greek Character from an Oracle database

    Hello, I am having a serious and urgent problem with the character settings of an oracle database (8.1.7). The database is sitting in a solaris unix server and when we run the env command we have the following in the NLS_LANG parameter: AMERICAN_AMERICA.WE8ISO8859P1 (I do not know if this is helpful). When I retrieve data from oracle database (through a VB.NET 2005 program)to a dataset I use a special font in order to see the greek characters (HELLASARIAL). But when I am trying to save these data to a TXT file the greek characters are like Chinese to us. I tried several encodings (System.Text.Encoding.GetEncoding(869)) but without success. Can someone tell me how to convert the oracle greek characters during the selection or during the saving to the TXT file?
    Please respond as fast as you can.
    Thanks in advance

    Here is the answer of the microsoft:
    I have the information that you have a VB.Net 2005 application connected to an Oracle database 8.1.7.4 hosted on a UNIX server.
    This database has the CharacterSet WE8ISO8859P1.
    When retrieving Greek characters from this database in the application, you cannot see them.
    Could you please send me a screenshot of these characters in the .Net application?
    Are they displayed as gibberish, or as inverted questions marks (?)?
    I already had similar cases with Hebrew characters hosted on an Oracle database.
    These characters were displayed as questions marks on the client side.
    This is due to the fact that System.Data.OracleClient is using the Server CharacterSet to display the characters.
    If your Greek characters are not stored in the WE8ISO8859P1 characterset, then they won’t display correctly on the client-side.
    This is different from OLEDB where you could interact on client side by modifying the NLS_LANG parameter in the registry HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0.
    The client NLS_LANG and the server CharacterSet had to match in order to correctly display the data, and avoid SQL*NET conversion.
    So there are two solutions to your case:
    - The first one is to create a new database using the P8 characterset. The Oracle .Net managed provider will so be able to use it and display the characters correctly.
    - The second one is to use the OLEDB.Net managed provider, and then use OLEDB for Oracle provider. OLEDB will take care of the client NLS_LANG registry parameter.
    Would it be possible to test your application against an Oracle database with WE8ISO8859P8 characterset?
    Would it be possible to test it with the OLEDB .Net managed provider, and after checking the NLS_LANG client registry parameter?

  • How to upload a file into server using j2ee jsp and servlet with bean?

    How to upload a file into server using j2ee jsp and servlet with bean? Please give me the reference or url about how to do that. If related to struts is more suitable.
    Anyone help me please!

    u don't need j2ee and struts to do file uploading. An example is as such
    in JSP. u use the <input> file tag like
    <input type="file"....>You need a bean to capture the file contents like
    class FileUploadObj {
        private FormFile srcFile;
        private byte[] fileContent;
        // all the getter and setter methods
    }Then in the servlet, you process the file for uploading
        * The following loads the uploaded binary data into a byte Array.
        FileUploadObj form = new FileUploadObj();
        byte[] byteArr = null;
        if (form.signFile != null) {
            int filesize = form.srcFile.getFileSize();
            byteArr = new byte[filesize];
            ByteArrayInputStream bytein = new ByteArrayInputStream (form.srcFile.getFileData());
            bytein.read(byteArr);
            bytein.close();
            form.setFileContent(byteArr);
        // Write file content using Writer class into the destination file in the server.
        ...

  • Urgent issue with Intrastat

    Hi All, we  have  very  urgent issue  with  intrastat report ''VE01''.
    There  is  many documents  with error Log-''The statistical value of the document item is zero.''.
    The pricing  settings looks OK and its impossible  to
    correct  those  documents with error.
    Any Idee how I could  correct them for  them  to  get  the  green status?
    Points  will be added  if  helpful
    Thanks and regards
    Luis

    Hello Luis,
    please check the VBRP-BRTWR. If this fiels is zero then you get an entry in the incompletion log.
    the message could be also occur if the GRWR is zero.
    Please check your pricing setting.
    Hope this will help to solve the problem.
    I f you are satisfied with the answer, please don't forget to give Reward Points.
    regards
    Claudia

  • How to pass parameters to servlet with POST with  Business Service OSB

    Hi all.
    I am newby in OSB. I am trying to send some values through a POST call to a servlet. I know how to call the servlet with Business Service of type "Messaging Service". I send the parameters of type Text.
    I have tried several ways, but I don`t find the proper way yo do it. I have tried to insert the param into the body and into the header.
    The problem is that I don`t know exactly where to put them, I don`t know if it must be done in the header or in the boy. I neither don`t know if there is a common way to do this.
    Please, could you give me a good example of an insert activity to isert a post parameter inside the call?
    For example: now I am using this one:
    Expression => "accountType=test"
    Location => as first child of"
    XPATH => empty.
    In variable => body.
    Where do I have to insert this, in the body or in the outbounds?
    I have followed this posts:
    https://blogs.oracle.com/jeffdavies/entry/enhanced_rest_support_in_oracl
    http://www.yenlo.nl/en/using-osb-with-rest/
    Thanks a lot.

    Hi,
    Please be carefull about passing values such as Strings or number that contains ',' .
    using the way described above.
    the best way is to pass an ID and then use a select Statement to get the other Values in the target page.
    regards
    MDK.

  • Messed up response to calls to same servlet with different parameters

    Hi,
    I am facing a very strange problem on our production server which is a tomcat 3.2.3 and mod-jk . We have a servlet that recieves a couple of parameters and returns the page contents based on those parameters. Now, if two users call the servlet with their own (different) parameters, sometime the result for one user goes to another one and vice versa.
    For example, if user 1 calls :
    http://www.mydomain.com/servlet/DynamicPageBuild?siteID=577&categoryID=69&catName=
    and user 2 calls (note the difference in parameters) :
    http://www.mydomain.com/servlet/DynamicPageBuild?siteID=781&categoryID=54&catName=
    SOMETIMES the result of first request ends up going to user 2's browser or vice versa!
    Anyone PLEASE any ideas of why this is happening?

    When this happens there are two threads in the servlet container, and both of them are (simultaneously) running the same instance of the servlet. So if your servlet has instance variables, both threads (the two users) are accessing and changing the same instance variables... remember, there's only one instance of the servlet.
    So if you change your servlet logic to use local variables (the ones declared inside a method) instead of instance variables, that would probably solve your problem (although it could be more complicated than that). Each thread would have its own copy of the local variables, and there would be no conflict.

  • VersioningError when Using JDBC driver for SQL Server with RMI

    Hi,
    I wrote a simple class for inserting rows into a database. The database is SQL Server 2000, and I am using weblogic's mssqlserver4 driver. The class works fine, but when I try to export the class as a remote object (using Sun's RMI implementation, not Weblogic RMI), I get the following error:
    Exception in thread "main" weblogic.common.internal.VersioningError: No WebLogic packages defined in CLASSPATH at weblogic.common.internal.VersionInfo.<init>(VersionInfo.java:35) at weblogic.version.<clinit>(version.java:18)
    at weblogic.jdbc.common.internal.FileProxy.initFileHandles(FileProxy.java:30) at weblogic.jdbc.mssqlserver4.BaseConnection.prepareConnection(BaseConnection.java:215)
    at weblogic.jdbc.mssqlserver4.Driver.newConnection(Driver.java:34) at weblogic.jdbc.mssqlserver4.ConnectDriver.connect(ConnectDriver.java:151) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171)
    Can anyone tell me why this happens? What is difference between using the driver standalone and using it with RMI? Does it have anything to do with the fact that I'm using Javasoft RMI and not Weblogic RMI? I'm pretty sure I have the classpaths set up correctly.
    Thanks,
    Bo

    Bo Min Jiang wrote:
    Hi,
    I wrote a simple class for inserting rows into a database. The database is SQL Server 2000, and I am using weblogic's mssqlserver4 driver. The class works fine, but when I try to export the class as a remote object (using Sun's RMI implementation, not Weblogic RMI), I get the following error:
    Exception in thread "main" weblogic.common.internal.VersioningError: No WebLogic packages defined in CLASSPATH at weblogic.common.internal.VersionInfo.<init>(VersionInfo.java:35) at weblogic.version.<clinit>(version.java:18)
    at weblogic.jdbc.common.internal.FileProxy.initFileHandles(FileProxy.java:30) at weblogic.jdbc.mssqlserver4.BaseConnection.prepareConnection(BaseConnection.java:215)
    at weblogic.jdbc.mssqlserver4.Driver.newConnection(Driver.java:34) at weblogic.jdbc.mssqlserver4.ConnectDriver.connect(ConnectDriver.java:151) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171)
    Can anyone tell me why this happens? What is difference between using the driver standalone and using it with RMI? Does it have anything to do with the fact that I'm using Javasoft RMI and not Weblogic RMI? I'm pretty sure I have the classpaths set up correctly.
    Thanks,
    BoHi. Show me the whole stacktrace of the exception. The issue seems to be the driver licensing
    code, which is looking for the bea.license file, and not finding it. Have your code run a System command
    to find and print out the classpath it thinks is in effect. You will then see if the license file is there.
    Joe

  • 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

  • Servlet with Database Access!!!

    Hi !!!!
    I have deployed HelloServlet with Oracle Application Server 4.0.8.1.
    Now I want to connect from Servlet to Oracle8i 8.1.5.
    But, when I try to deploy a Servlet with Database Access, I receive the next:
    "Get operation not allowed"
    The URL used is:
    http://host.domain:port/virtual_path/class_name
    The servlet was compiled using the Sun's jdk from command line. There wasn't compilation errors.
    I run a simple application with database access from command line without problems.
    The drivers and JDBC libraries are operating for this simple application.
    Any help will be appreciated.
    Many thanks
    Sergio

    If you are running OAS 4.0.8.1 and Oracle 8.1.5 on the same machine then this could be the problem. These products are not certified to run on the same machine as they give a path conflict.
    Hope this helps.

  • How to activate / disactivate a servlet with a java client ?

    I would like to know how to activate or disactivate a servlet with a java client or an applet ?
    Thanks...

    What does "activate" mean for servlets?

Maybe you are looking for