能不能说得清楚点,我是个初学j2ee的

解决方案 »

  1.   

    在客户端改成 Remate 远程调用
      

  2.   

    应该把EJB改成远程调用就是了,我也才学没多久,帮你顶了
      

  3.   

    package ejbtest;import javax.naming.*;
    import java.util.Properties;
    import javax.rmi.PortableRemoteObject;
    import javax.ejb.Handle;
    import javax.ejb.EJBMetaData;
    import javax.ejb.HomeHandle;public class EnterpriseOneTestClient1 extends Object {
      private static final String ERROR_NULL_REMOTE = "Remote interface reference is null.  It must be created by calling one of the Home interface methods first.";
      private static final int MAX_OUTPUT_LINE_LENGTH = 100;
      private boolean logging = true;
      private EnterpriseOneHome enterpriseOneHome = null;
      private EnterpriseOne enterpriseOne = null;  //Construct the EJB test client
      public EnterpriseOneTestClient1() {
        initialize();
      }  public void initialize() {
        long startTime = 0;
        if (logging) {
          log("Initializing bean access.");
          startTime = System.currentTimeMillis();
        }    try {
          //get naming context
          Context context = getInitialContext();      //look up jndi name
          Object ref = context.lookup("EnterpriseOne");
          //look up jndi name and cast to Home interface
          enterpriseOneHome = (EnterpriseOneHome) PortableRemoteObject.narrow(ref, EnterpriseOneHome.class);
          if (logging) {
            long endTime = System.currentTimeMillis();
            log("Succeeded initializing bean access through Home interface.");
            log("Execution time: " + (endTime - startTime) + " ms.");
          }
        }
        catch(Exception e) {
          if (logging) {
            log("Failed initializing bean access.");
          }
          e.printStackTrace();
        }
      }  private Context getInitialContext() throws Exception {
        String url = "t3://computer-d8e6be:7001";
        String user = null;
        String password = null;
        Properties properties = null;
        try {
          properties = new Properties();
          properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
          properties.put(Context.PROVIDER_URL, url);
          if (user != null) {
            properties.put(Context.SECURITY_PRINCIPAL, user);
            properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
          }      return new InitialContext(properties);
        }
        catch(Exception e) {
          log("Unable to connect to WebLogic server at " + url);
          log("Please make sure that the server is running.");
          throw e;
        }
      }  //----------------------------------------------------------------------------
      // Methods that use Home interface methods to generate a Remote interface reference
      //----------------------------------------------------------------------------  public EnterpriseOne create() {
        long startTime = 0;
        if (logging) {
          log("Calling create()");
          startTime = System.currentTimeMillis();
        }
        try {
          enterpriseOne = enterpriseOneHome.create();
          if (logging) {
            long endTime = System.currentTimeMillis();
            log("Succeeded: create()");
            log("Execution time: " + (endTime - startTime) + " ms.");
          }
        }
        catch(Exception e) {
          if (logging) {
            log("Failed: create()");
          }
          e.printStackTrace();
        }    if (logging) {
          log("Return value from create(): " + enterpriseOne + ".");
        }
        return enterpriseOne;
      }  public void remove(Handle p0) {
        long startTime = 0;
        if (logging) {
          log("Calling remove(" + p0 + ")");
          startTime = System.currentTimeMillis();
        }    try {
          enterpriseOneHome.remove(p0);
          if (logging) {
            long endTime = System.currentTimeMillis();
            log("Succeeded: remove(" + p0 + ")");
            log("Execution time: " + (endTime - startTime) + " ms.");
          }
        }
        catch(Exception e) {
          if (logging) {
            log("Failed: remove(" + p0 + ")");
          }
          e.printStackTrace();
        }
      }  public void remove(Object p0) {
        long startTime = 0;
        if (logging) {
          log("Calling remove(" + p0 + ")");
          startTime = System.currentTimeMillis();
        }    try {
          enterpriseOneHome.remove(p0);
          if (logging) {
            long endTime = System.currentTimeMillis();
            log("Succeeded: remove(" + p0 + ")");
            log("Execution time: " + (endTime - startTime) + " ms.");
          }
        }
        catch(Exception e) {
          if (logging) {
            log("Failed: remove(" + p0 + ")");
          }
          e.printStackTrace();
        }
      }  public EJBMetaData getEJBMetaData() {
        EJBMetaData returnValue = null;    long startTime = 0;
        if (logging) {
          log("Calling getEJBMetaData()");
          startTime = System.currentTimeMillis();
        }    try {
          returnValue = enterpriseOneHome.getEJBMetaData();
          if (logging) {
            long endTime = System.currentTimeMillis();
            log("Succeeded: getEJBMetaData()");
            log("Execution time: " + (endTime - startTime) + " ms.");
          }
        }
        catch(Exception e) {
          if (logging) {
            log("Failed: getEJBMetaData()");
          }
          e.printStackTrace();
        }    if (logging) {
          log("Return value from getEJBMetaData(): " + returnValue + ".");
        }
        return returnValue;
      }  public HomeHandle getHomeHandle() {
        HomeHandle returnValue = null;    long startTime = 0;
        if (logging) {
          log("Calling getHomeHandle()");
          startTime = System.currentTimeMillis();
        }    try {
          returnValue = enterpriseOneHome.getHomeHandle();
          if (logging) {
            long endTime = System.currentTimeMillis();
            log("Succeeded: getHomeHandle()");
            log("Execution time: " + (endTime - startTime) + " ms.");
          }
        }
        catch(Exception e) {
          if (logging) {
            log("Failed: getHomeHandle()");
          }
          e.printStackTrace();
        }    if (logging) {
          log("Return value from getHomeHandle(): " + returnValue + ".");
        }
        return returnValue;
      }  //----------------------------------------------------------------------------
      // Methods that use Remote interface methods to access data through the bean
      //----------------------------------------------------------------------------  public void test() {
        if (enterpriseOne == null) {
          System.out.println("Error in test(): " + ERROR_NULL_REMOTE);
          return ;
        }    long startTime = 0;
        if (logging) {
          log("Calling test()");
          startTime = System.currentTimeMillis();
        }    try {
          enterpriseOne.test();
          if (logging) {
            long endTime = System.currentTimeMillis();
            log("Succeeded: test()");
            log("Execution time: " + (endTime - startTime) + " ms.");
          }
        }
        catch(Exception e) {
          if (logging) {
            log("Failed: test()");
          }
          e.printStackTrace();
        }
      }  //----------------------------------------------------------------------------
      // Utility Methods
      //----------------------------------------------------------------------------  private void log(String message) {
        if (message == null) {
          System.out.println("-- null");
          return ;
        }
        if (message.length() > MAX_OUTPUT_LINE_LENGTH) {
          System.out.println("-- " + message.substring(0, MAX_OUTPUT_LINE_LENGTH) + " ...");
        }
        else {
          System.out.println("-- " + message);
        }
      }  //Main method  public static void main(String[] args) {
        EnterpriseOneTestClient1 client = new EnterpriseOneTestClient1();
        client.create();
        client.test();
        // Use the client object to call one of the Home interface wrappers
        // above, to create a Remote interface reference to the bean.
        // If the return value is of the Remote interface type, you can use it
        // to access the remote interface methods.  You can also just use the
        // client object to call the Remote interface wrappers.
      }
    }