WLE 6.1 and RMI

Hi,
Is i possible to have RMI comm. between WLE and a native java program /
applet ?
Or do i need a WL lisence that enables EJB on the webserver ?
TIA,
Borre

Hi,
This is an WLX question i was miss spelling
Borre
"Chuck" <[email protected]> wrote in message
news:3c3b4c2b$[email protected]..
>
Borre,
Is this a Weblogic Server (WLS) or WebLogic Enterprise (WLE) question?Are you
wondering if you need an additional XML 'stanza' in the license.bea foraccessing
an RMI object from a Java client?

Similar Messages

  • Difference Between JMS and RMI

    Difference Between JMS and RMI in J2EE Technologies

    STFW
    JMS - http://www.google.co.za/search?hl=en&q=what+is+jms&meta=
    RMI - http://www.google.co.za/search?hl=en&q=what+is+rmi&meta=

  • Differnce between RPC and RMI

    Hello,
    Can anyone please tell me in detail the difference between RPC and RMI? If possible can you pls give examples?
    Thanks in advance.
    KiranJyot

    Thank you for the reply.
    Yes, I did google about this. But, it was not clear to me. I did ATM application using both RPC and RMI. Even though, it worked fine and did not lose points in my assignments, unfortunately the concepts were not clear.
    Can you please explain me what does it meant by - there is objects involved in RMI. In RPC, invoking functions is done through a proxy function. It will be great if you can explain it using ATM application.
    Regards,
    KiranJyothi

  • Using Applets and RMI on WL6 - Error marshaling transport header; nested exception is:  - java.io.EOFException

    I have a project that I am porting from WL5.1 to WL6. It was working fine
    in WL5.1
    but cannot get it working in WL6. So, I went back to the HelloWorld
    example to
    see if I could get it working. The problem I am having is basically getting
    applet to
    talk to a server via RMI. The applet works fine alone and RMI works fine
    alone.
    I can't get the applet to talk to the server via RMI.
    I am trying to get the "HelloWorld" applet example in WL6 working with RMI.
    I previously had the same app working in WL5.1 with SP9 but cannot get it
    working in WL6.
    I am running WebLogic Server 6.0 with SP2.
    I have registered a startup class in the WebLogic console
    named "HelloServer". When starting up the server, it states
    that the HelloImpl class has been registered as "HelloServer".
    When starting up the client applet I get the following error:
    java.rmi.MarshalException: Error marshaling transport header; nested
    exception is:
    java.io.EOFException
    These are two different methods of looking up the same object.
    The exception occurs at the "lookup" method call in both cases.
    "myserver" is the name of my machine that WL is running on.
    7001 is the port that WL is using.
    Registry reg = LocateRegistry.getRegistry("myserver", 7001);
    obj = (Hello)reg.lookup("HelloServer");
    or...
    obj = (Hello)weblogic.rmi.Naming.lookup("rmi://" +
    getCodeBase().getHost() + ':' + port + "/HelloServer");
    I previously ran this same program under WL5.1 SP9 and everything works
    fine.
    I defined the startupClass in the weblogic.properties file in WL5.1
    Can anyone tell my what is causing this exception and how to correct the
    problem?
    Thanks
    Terry Antle

    "Terry Antle" <[email protected]> writes:
    These are two different methods of looking up the same object.
    The exception occurs at the "lookup" method call in both cases.
    "myserver" is the name of my machine that WL is running on.
    7001 is the port that WL is using.
    Registry reg = LocateRegistry.getRegistry("myserver", 7001);
    obj = (Hello)reg.lookup("HelloServer");
    or...
    obj = (Hello)weblogic.rmi.Naming.lookup("rmi://" +
    getCodeBase().getHost() + ':' + port + "/HelloServer");
    I previously ran this same program under WL5.1 SP9 and everything works
    fine.
    I defined the startupClass in the weblogic.properties file in WL5.1
    Can anyone tell my what is causing this exception and how to correct the
    problem?I don't know what the problem is but you shouldn't be using either of
    these methods for looking up RMI objects - you should use JNDI instead.
    Thanks
    andy

  • Jini and Rmi utilisation for a particulary case..

    I have to write a application which is going to connect our server to different hospitals infromatque system.
    The application would provide a user interface in hospital side wich is going to make them able to send us a inventory file(fromated differently for each hospital with their own informatiqe system).
    The application have also to change the the file format befor stored in our data-base(each information have to go to different table)
    My supervisor ask me to look Jini and Rmi technologie for this application..
    So far i read some information about both technologie..but still i'm wondering my self is Jini or Rmi have a real use in this case.
    If your are masterd in those technologie and java networking device woud you help me up ?
    Could you tell me if those technologie have to be realy use in this case or there is other solution with java programming.
    Thank's
    Astiage Ghassemian

    Jini is a high level framework that a computer to easily locate a service provider in a network and get the service. So your case does not need such a framework because in your case, just like most of todays application, the service is provided only by your server and you know where it is and what it does. You just need something a one level lower than Jini that actually does the communication - RMI. Jini runs only top of any other lower level protocol including RMI. Detailed description of Jini:
    Jini technology is an architecture for the construction of systems from objects and networks. The Jini architecture lets programs use services in a network without knowing anything about the wire protocol that the service uses. One implementation of a service might be XML-based, and another RMI-based, and a third CORBA-based. The client is, in effect, taught by each service how to talk to it. A service is defined by its programming API, declared as a Java programming language interface.
    When a service is plugged into a network of Jini technology-enabled services and/or devices, it advertises itself by publishing a Java programming language object that implements the service API. This object's implementation can work in any way the service chooses. The client finds services by looking for an object that supports the API. When it gets the service's published object, it will download any code it needs in order to talk to the service, thereby learning how to talk to the particular service implementation via the API. The programmer who implements the service chooses how to translate an API request into bits on the wire using UPnP, RMI, CORBA, or a private protocol.
    In other words, the Jini architecture uses objects that move around the network to make each service, as well as the entire network of services, adaptable to new strategies over time.

  • Corba,RMI and RMI-IIOP

    Can someone help me understand and analyze the marshaling techniques of CORBA, RMI and RMI-IIOP??

    RMI/JRMP is easy, just read the RMI Specification:
    http://java.sun.com/j2se/1.5.0/docs/guide/rmi/spec/rmi-protocol.html
    CORBA is not so easy. Find the GIOP and IIOP specifications at http://www.omg.org

  • Making choice between socket and RMI

    I never use RMI, but i am familiar to socket programming. i want to write an online game, I know that use RMI will easy than use socket, could anyone tell me what factors will affect the choice between using socket and RMI if don't consider which one i am familiar ?
    thanks
    jacky

    I would consider the amount of traffic your online game is going to be generating. Obviously, if the traffic is the bottleneck, you will want to optimize it as much as possible.
    I can see that if you are familiar with sockets and socket programming, where this is very appealing because after all, you can't get much faster than raw sockets. Also, the Java APIs around sockets are much easier than the equivalent BSD Socket C/C++ libraries.
    Still, RMI has much more to offer.
    o It is relatively easy to set up a connection
    o exceptions will be thrown when problems occur
    o serializing classes is so easy it's laughable
    o If performance becomes an issue, you can (as the previous poster suggests) create your own custom socket factory which optimizes the used bandwidth. Options here include compression if you have the CPU cycles to spare.
    o There are mechanisms in place for working RMI over firewalls
    Many of the things that RMI offers, you might find yourself re-writing in your own socket-based API. Personally, I would choose RMI.

  • CORBA and RMI are "dead"?

    Hi,
    I'm a Comp. Sci. student taking a course in CORBA and RMI and was wondering how relevant these technologies are out in the real world? I have a friend in industry who tells me that these technologies are "dead". He says XML has taken over as a communications standard.
    Also, I am in the design phase of developing a 3D online game and I want to know if CORBA or RMI is fast enough to be used in a realtime application such as this (let's say I want to make 10 remote method calls per second to each of 50 clients). Can someone aim me at some benchmarks or performance figures?
    Thanks all.

    1. Your friend doesn't know as much as he thinks.
    His statement is like saying "Conversation is dead because everybody uses English."
    I can't speak about CORBA, but
    o We have some very robust applictions written using RMI.
    o We wonder if SUN is walking away from RMI totards JAX: an XML-based communications scheme.
    2. Your problem is kind of under-specified, but
    o the way you phrased it sounds like lots of callback from server to clients - an area RMI handles, but only very well on LANs.
    o I suspect your performance will be more limited by network characteristics than by RMI. Unerneath, it's just TCPIP.

  • Conflict between socket and RMI

    Hi
    I wrote a program in client-server using socket and it was fine. I also wrote a client-server program using RMI. Fine as well. But after I connected the client-server using socket (open socket, send-receive messages, close socket), then use RMI. I got java.rmi.NotBoundException.
    Would anyone have a look and provide your feedback please? Thanks.
    big J
    *****************this is Server.java ***************************
    package single;
    import java.io.*;
    import java.rmi.Naming;
    import java.rmi.RemoteException;
    import java.net.*;
    import java.rmi.*;
    public class Server
    extends Thread {
    public static final int SOCKETPORT = 5555;
    private String serverName;
    public Server() throws IOException {
    System.out.println("*** socket opened ***");
    serverName = new String("localhost");
    ServerSocket serverSocket = new ServerSocket(SOCKETPORT);
    Socket socket = serverSocket.accept();
    InputStream is = socket.getInputStream();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
    System.out.println(bufferedReader.readLine());
    OutputStream os = socket.getOutputStream();
    PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(os), true);
    printWriter.println("from server");
    os.close();
    is.close();
    socket.close();
    System.out.println("*** socket closed ***");
    public void runServer() {
    System.out.println("*** start of run():RMI ***");
    System.setSecurityManager(new SecurityManager());
    try {
    RMIInterfaceImpl rMIInterfaceImpl = new RMIInterfaceImpl();
    Naming.bind("//" + serverName + ":9999/RMIInterface", rMIInterfaceImpl);
    catch (RemoteException ex) {
    catch (MalformedURLException ex) {
    catch (AlreadyBoundException ex) {
    System.out.println("*** end of run():RMI ***");
    public static void main(String args[]) throws Exception {
    Server server = new Server();
    server.runServer();
    ******************this is Client.java **************************
    package single;
    import java.io.*;
    import java.net.*;
    import java.rmi.Naming;
    public class Client {
    private String serverName;
    private final static int SOCKETPORT = 5555;
    public Client() throws IOException {
    serverName = new String("localhost");
    Socket socket = new Socket(serverName, SOCKETPORT);
    OutputStream os = socket.getOutputStream();
    PrintWriter printWriter=new PrintWriter(os, true);
    printWriter.println("from client");
    InputStream is = socket.getInputStream();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
    System.out.println(bufferedReader.readLine());
    is.close();
    os.close();
    socket.close();
    public void runClient() throws Exception {
    System.out.println("*** start of runClient():RMI ***");
    System.setSecurityManager(new SecurityManager());
    RMIInterface rMIInterfaceImpl = (RMIInterface) Naming.lookup(
    "//" + serverName + ":9999/RMIInterface");
    String str = rMIInterfaceImpl.print();
    System.out.println(str);
    rMIInterfaceImpl.serverSide();
    System.out.println("*** end of runClient():RMI ***");
    public static void main(String args[]) throws Exception {
    Client client = new Client();
    client.runClient();
    ***************** this is RMIInterface.java ***********************
    package single;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    interface RMIInterface
    extends Remote {
    String print() throws RemoteException;
    void serverSide() throws RemoteException;
    ********************* this is RMIInterfaceImpl.java ***************
    package single;
    import java.rmi.RemoteException;
    import java.rmi.server.UnicastRemoteObject;
    public class RMIInterfaceImpl
    extends UnicastRemoteObject
    implements RMIInterface {
    public RMIInterfaceImpl() throws RemoteException {}
    public String print() {
    return new String("hello world");
    public void serverSide(){
    System.out.println("this should appear in serverside");

    I think you have a timing problem between your client and server. As soon as your client and server programs have finished their socket communication, they will both do their "runServer"/"runClient" methods. If the client attempts to lookup the server before the server has registered itself via Naming.bind(), I would expect that's why you're getting a NotBoundException in the client.
    You probably wouldn't use the design of your test client/server for something significant, but a quick and dirty way to make this work might be to have the client call Thread.sleep() for a few seconds before trying to do the lookup.

  • Remote desktop and RMI

    Is RMI the right choice for developing a remote desktop application (sending mouse and keys events and receive screen shots) ?

    That's not a reason, that's just a (fallacious) assertion about using RMI for anything. In fact, 'managing the RMI server' is probably the easiest part of RMI.
    The reason I said it isn't appropriate is that the communications primitives you need can't be sensibly expressed as procedure calls. You have a stream of screen information flowing between the remote and the peer, and you may have occasional keyboard/mouse events going the other way if you implement remote control. RMI is a completely inappropriate choice for this.

  • UnmarshalException, client and rmi

    Hello,
    I'm developing client/server application using RMI. The problem occurs when I want to run it all and test. I do as follows:
    (first of all, I compile each project (server and client) from Eclipse.
    then with server:
    rmic engine/ServerImplementation.class
    start rmiregistry
    java SpikServerand with client:
    java -Djava.security.policy=c:\wideopen.policy SpikClient 127.0.0.1and then I receive such an errors:
    java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
            java.lang.ClassNotFoundException: engine.ServerImplementation_Stub
            at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
            at java.rmi.Naming.lookup(Unknown Source)
            at engine.ClientImplementation.connect(ClientImplementation.java:44)
            at userInterface.Console.run(Console.java:19)
            at SpikClient.main(SpikClient.java:9)
    Caused by: java.lang.ClassNotFoundException: engine.ServerImplementation_Stub
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Unknown Source)
            at sun.rmi.server.LoaderHandler.loadClass(Unknown Source)
            at sun.rmi.server.LoaderHandler.loadClass(Unknown Source)
            at java.rmi.server.RMIClassLoader$2.loadClass(Unknown Source)
            at java.rmi.server.RMIClassLoader.loadClass(Unknown Source)
            at sun.rmi.server.MarshalInputStream.resolveClass(Unknown Source)
            at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
            at java.io.ObjectInputStream.readClassDesc(Unknown Source)
            at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
            at java.io.ObjectInputStream.readObject0(Unknown Source)
            at java.io.ObjectInputStream.readObject(Unknown Source)
            ... 5 moreHow can I fix it? Any suggestions are welcome. If more information are required just let me know, I will deliver them.
    Kind regards,
    John.

    I read that part of a faq but still I don't know what should I do. I don't want to use http or ftp protocols to transfer needed data. On the other hand I can run an example from this page: http://www.javacamp.org/moreclasses/rmi/rmi6.html without any problem. I also read that before running rmiregistry the classpath should be unset. And I do so but after starting rmiregistry I have to set classpath to make work derby database (set CLASSPATH=C:\eclipse-java-europa-win32\eclipse\plugins\org.apache.derby.core_10.3.2\derby.jar;C:\eclipse-java-europa-win32\eclipse\plugins\org.apache.derby.core_10.3.2\derbytools.jar;.)
    so maybe that's the problem? What do you think about this?

  • Ifs and rmi

    hi,
    i wrote a rmi-server which accesses the ifs-repositry and retrievs the folderlist (similar to the "jdb error" post). now i can call the server-method "RmiServer.list(...)" which returns a string containing some folder-names. but: trying to call that RmiServer.list() one more time causes the client to hang. i took a look at the servers thread dump and notices one differenc in the thread-lists before and after the ifs-access.
    one thread seems to loop/deadlock/hang/../?.
    here is the thread dump after the ifs-call:
    Full thread dump:
    "LeaseChecker" (TID:0xec99eb90, sys_thread_t:0x154888, state:CW, thread_t: t@12, sp:0xef080ea0 threadID:0xef081dd8, stack_base:0xef081d6c, stack_size:0x20000) prio=5
    sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:303)
    java.lang.Thread.run(Thread.java)
    "KeepAlive" (TID:0xec99d528, sys_thread_t:0x108020, state:CW, thread_t: t@9, sp:0xef110ea0 threadID:0xef111dd8, stack_base:0xef111d6c, stack_size:0x20000) prio=5
    sun.rmi.transport.KeepAlive.run(ObjectTable.java:182)
    java.lang.Thread.run(Thread.java)
    "Reaper" (TID:0xec99d568, sys_thread_t:0xe2d28, state:CW, thread_t: t@7, sp:0xef140e40 threadID:0xef141dd8, stack_base:0xef141d6c, stack_size:0x20000) prio=5
    sun.rmi.transport.Reaper.run(ObjectTable.java:199)
    java.lang.Thread.run(Thread.java)
    "TCP Accept-1" (TID:0xec99d198, sys_thread_t:0xf5e10, state:CW, thread_t: t@6, sp:0xef170ea0 threadID:0xef171dd8, stack_base:0xef171d6c, stack_size:0x20000) prio=5
    sun.rmi.transport.tcp.TCPTransport.retryServerSocket(TCPTransport.java:344)
    sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:430)
    java.lang.Thread.run(Thread.java)
    "SIGQUIT handler" (TID:0xec9982a0, sys_thread_t:0x8b3b8, state:R, thread_t: t@5, sp:0xef1f1af0 threadID:0xef1f1dd8, stack_base:0xef1f1d6c, stack_size:0x20000) prio=0 current thread
    "Finalizer thread" (TID:0xec998088, sys_thread_t:0x8b328, state:CW, thread_t: t@4, sp:0xef341a30 threadID:0xef341dd8, stack_base:0xef341d6c, stack_size:0x20000) prio=1
    "main" (TID:0xec9980b0, sys_thread_t:0x724f8, state:CW, thread_t: t@1, sp:0xefffdad8 threadID:0x24190, stack_base:0x0, stack_size:0x800000) prio=5
    Monitor Cache Dump:
    <unknown key> (0x154888): <unowned>
    Waiting to be notified:
    "LeaseChecker" (0x154888)
    <unknown key> (0xf5e10): <unowned>
    Waiting to be notified:
    "TCP Accept-1" (0xf5e10)
    sun.rmi.transport.tcp.TCPTransport@EC99CEF8/ECA883D8: owner "TCP Accept-1" (0xf5e10, 1 entry)
    <unknown key> (0xe2d28): <unowned>
    Waiting to be notified:
    "Reaper" (0xe2d28)
    <unknown key> (0x108020): <unowned>
    Waiting to be notified:
    "KeepAlive" (0x108020)
    Registered Monitor Dump:
    Thread queue lock: owner "SIGQUIT handler" (0x8b3b8, 1 entry)
    Waiting to be notified:
    "main" (0x724f8)
    Name and type hash table lock: <unowned>
    String intern lock: <unowned>
    JNI pinning lock: <unowned>
    JNI global reference lock: <unowned>
    BinClass lock: <unowned>
    Class loading lock: <unowned>
    Java stack lock: <unowned>
    Code rewrite lock: <unowned>
    Heap lock: <unowned>
    Has finalization queue lock: <unowned>
    Finalize me queue lock: <unowned>
    Waiting to be notified:
    "Finalizer thread" (0x8b328)
    Monitor registry: owner "SIGQUIT handler" (0x8b3b8, 1 entry)
    comparing the thread dumps before and after the ifs-access differs in one thread: the rmi thread "TCP Accept-1". above shown is the dump afterwards. before ifs-access the "TCP Accept-1" thread stack is as follows:
    "TCP Accept-1" (TID:0xec99d198, sys_thread_t:0xf5e10, state:R, thread_t: t@6, sp:0xef171040 threadID:0xef171dd8, stack_base:0xef171d6c, stack_size:0x20000) prio=5
    java.net.PlainSocketImpl.accept(PlainSocketImpl.java:379)
    java.net.ServerSocket.implAccept(ServerSocket.java:198)
    java.net.ServerSocket.accept(ServerSocket.java:181)
    sun.rmi.transport.proxy.HttpAwareServerSocket.accept(HttpAwareServerSocket.java:70)
    sun.rmi.transport.tcp.TCPTransport.run(TCPTranspo rt.java:376)
    java.lang.Thread.run(Thread.java)
    server-system: solaris 2.6, jdk: ifs' own jdk.
    client-system: nt-4.0, jdk: sun jdk 1.1.6
    i would be very happy for any help, so thanks in advice,
    alex

    I don't think we (Oracle) can invest the amount of time it would take to help you with this problem, since it involves RMI, which is not an Oracle product.
    My only (somewhat uninformed) thoughts are that there may be problems with the RMI itself.
    We have seen many problems with JDK 1.1.6, and recommend you using JDK 1.1.8.
    Perhaps that might help.

  • Abstract class and RMI

    Hi!
    I have a desgin where I have an abstract class that in its constructor registers itself in a registry and define three abstract methods. Then I have a class that extends the abstract class and implements the three methods.
    One of the methods inserts som text in a textArea defined in the child of the abstract class but when I call this method remotly I get a nullpointer exception saying that the textArea has not been initialized. The child ofcause calls super in its constructor.
    So my question is can you not extend an abstract class that register it self in the constructor and then call methods remotly that uses variables that have been initialized in a childs constructor?
    Have your any idea to why I get the nullpointer exception?
    Peter

    >
    This sounds like there might be a misunderstanding
    about the nature of methods and variables. If, for
    instance, your client looks something like this:
    RObject roo = ...// get via RMI
    TextArea text = roo.getTextArea();
    text.setText("...");
    My design is more like this:
    public interface Subscriber extends Remote {
      public void notifySubscriber();
    public abstract class A implements Subscriber {
      a() {
        server.addSubscriber(this);
      public abstract method1();
      // some more abstract methods
      public void notifySubscriber() {
        // do some stuff
        method1();
    public class B extends A {
      JTextArea text;
      A() {
        super();
        text = new JTextArea();
      public void method1() {
        // do some stuff
        // then text is null when called remotly
        text.setText("Hello");
    }Hope this makes my design more clear and you can see the problem.
    Thanks in advance

  • Web services and RMI

    Hi,
    I have a question about the scalability of RMI with Oracle JVM.
    What we intend to do is have about 10 SOAP webservices all interacting with our Oracle 8i instance. One of the developers suggestion is to use the Sun Java/SOAP Toolkit to make the WS stub code on UNIX and write java classes on the UNIX box to talk to more Java Classes in Oracle (using RMI), which in turn then pass data to Oracle PL/SQL packages which do the main bulk of the work (and the same of course happens in reverse). Our webservices will be called very often however (maybe about 1 call every 10 secs) at the moment possibly increasing to several calls per second in busy periods.
    However i have heard that RMI really does not scale well at all (in fact another group of people I've talked to in our organisation advise us not to use it, and claim Oracle advise the same).
    My suggestion was to handle it all in PL/SQL and use the utl_tcp package to handle the http traffic (with the possibility of migrating to Oracle 9i + utl_http). (along the same lines as http://otn.oracle.com/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html)
    Any suggestions on this would be most appreciated.
    Thanks.

    In general I would concur with your thoughts on RMI. For some doc backup check out two pieces:
    http://download-west.oracle.com/docs/cd/B10501_01/java.920/a96656/invokeap.htm#1011867
    and then also the de-support of J2EE characteristics in general:
    http://download-west.oracle.com/docs/cd/B10501_01/java.920/a96656/intro.htm#1006743
    The basic focus of the Java engine is on J2SE applications.
    To answer the SOAP approach, the development effort is primarily focussing on using the SOAP Java stack and loading it into the database as per this paper and example:
    Paper: http://otn.oracle.com/tech/webservices/htdocs/dbwebservices/Database_Web_Services.pdf
    Example:
    http://otn.oracle.com/sample_code/tech/java/jsp/samples/wsclient/Abstract.html
    This gives the same result as the PL/SQL example you point to but on a service by service approach a fairly simplified development approach. This should work in 8i as well (use these instructions to set up the stack: http://otn.oracle.com/sample_code/tech/java/jsp/loadjars.htl)
    That said, the PL/SQL approach should also work (though like you say it needs to be tailored to 8i's PL/SQL capabilities) but you don't get much help from the product beyond UTL_HTTP whereas the Java approach gives a pre-built infrastructure that can also be upgraded as we move to JAX-RPC, the emerging standardized Java approach to implementing Web services.
    Mike.

  • Jax-rpc and rmi confusion

    I'm new to the jax-rpc, and I'm very confused about jax-rpc, if it is using RPC (remote precedure call), why we have to import java.rmi.Remote ? is it somewhere still using RMI?
    Thank you in advance for you answer!

    Found some answer from the following link
    http://forum.java.sun.com/thread.jsp?forum=331&thread=465860

Maybe you are looking for