Setting up connections to WebLogic 10 and greater

Document ID : KB000048511
Last Modified Date : 14/02/2018
Show Technical Document Details

Developing a WebLogic Full Client

Understanding the WebLogic Full Client

For WebLogic Server 10.0 and later releases, client applications need to use the wlfullclient.jar file instead of the weblogic.jar. A WebLogic full client is a Java RMI client that uses Oracle's proprietary T3 protocol to communicate with WebLogic Server, thereby leveraging the Java-to-Java model of distributed computing. For information on developing RMI applications, see Understanding WebLogic RMI. You cannot integrate clients written in languages other than Java.

Note: Although the WebLogic full client requires the largest JAR file among the various clients, it has the most features and is the best overall performer. Note that the same JAR that provides the T3 protocol support also provides IIOP support.

A WebLogic full client:

  • Requires the wlfullclient.jar in your classpath.
  • Uses an URL in the form of t3://ip address:port for the initial context.
  • Is faster and more scalable than IIOP clients.
  • Supports most WebLogic Server-specific features.
  • Supports WLS clustering.
  • Supports most JavaEE features.
  • Supports WebLogic JMS, JMS SAF clients, and JMS C clients.

    Note: Not all functionality available with weblogic.jar is available with the wlfullclient.jar. For example, wlfullclient.jar does not support Web Services, which requires the wseeclient.jar. Nor does wlfullclient.jar support operations necessary for development purposes, such as ejbc, or support administrative operations, such as deployment, which still require using the weblogic.jar.

Creating a basic WebLogic full client consists of the following

  1. Generate the wlfullclient.jar file for client applications using the JarBuilder tool. See "Creating a wlfullclient.jar File for a Client Application" on page B-2.
  2. Obtain a reference to the remote object.
  3. Get the initial context of the server that hosts the service using a T3 URL.
  4. Obtain an instance of the service object by performing a lookup using the initial context. This instance can then be used just like a local object reference.# Call the remote objects methods.
    Sample code to for a simple WebLogic full client is provided in Listing 3-1.

Listing 3-1 Simple WebLogic Full hello Clientpackage examples.rmi.hello;


import javax.naming.*;
import java.util.Hashtable;
 
/**
* This client uses the remote HelloServer methods.
*
* @author Copyright (c) 1999-2004 by BEA Systems, Inc. All Rights Reserved.
*/
public class HelloClient {
 
private final static boolean debug = true;
 
/**
* Defines the JNDI context factory.
*/
public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
 
int port;
String host;
 
   private static void usage() {
   System.err.println("Usage: java examples.rmi.hello.HelloClient " +
      " ");
   System.exit(-1);
   }
 
   public HelloClient() {}
 
   public static void main(String[] argv) throws Exception {
      if (argv.length < 2) {
      usage();
     }
   String host = argv[0];
   int port = 0;
   try {
      port = Integer.parseInt(argv[1]);
      }
   catch (NumberFormatException nfe) {
      usage();
      }
   try {
 
      InitialContext ic = getInitialContext("t3://" + host + ":" + port);
 
      Hello obj =
         (Hello) ic.lookup("HelloServer");
      System.out.println("Successfully connected to HelloServer on " +
         host + " at port " +
         port + ": " + obj.sayHello() );
      }
   catch (Throwable t) {
      t.printStackTrace();
      System.exit(-1);
      }import weblogic.utils.Debug;import java.io.PrintStream;
 
 
 
  }
 
   private static InitialContext getInitialContext(String url)
      throws NamingException
   {
   Hashtable env = new Hashtable();
   env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
   env.put(Context.PROVIDER_URL, url);
   return new InitialContext(env);
   }
}


Creating a wlfullclient.jar File for a Client Application

Use the following steps to create a wlfullclient.jar file for a client application:

Change directories to the server/lib directory.

cd WL_HOME/server/lib

Use the following command to create wlfullclient.jar in the server/lib directory:

java -jar ../../../modules/com.bea.core.jarbuilder_X.X.X.X.jar

where X.X.X.X is the version number of the jarbuilder module in the WL_HOME/server/lib directory. For example:

java -jar ../../../modules/com.bea.core.jarbuilder_1.0.1.0.jar

You can now copy and bundle the wlfullclient.jar with client applications.
Add the wlfullclient.jar to the client application's classpath.