随笔-62  评论-29  文章-0  trackbacks-0
 

Book

import java.rmi.*;

import javax.ejb.*;

public interface Book extends EJBObject {

 public String getIsbn() throws RemoteException;

 public String getAuthor() throws RemoteException;

 public void setAuthor(String author) throws RemoteException;

 public String getBooktitle() throws RemoteException;

 public void setBooktitle(String booktitle) throws RemoteException;

 public Double getPrice() throws RemoteException;

 public void setPrice(Double price) throws RemoteException;

 public Integer getInstock() throws RemoteException;

 public void setInstock(Integer instock) throws RemoteException;

}

import java.rmi.*;

import javax.ejb.*;

BookBean

public class BookBean implements EntityBean {

 EntityContext entityContext;

 public String isbn;

 public String author;

 public String booktitle;

 public Double price;

 public Integer instock;

 public String ejbCreate(String isbn, String author, String booktitle, Double price, Integer instock) throws CreateException, RemoteException {

    this.isbn = isbn;

    this.author = author;

    this.booktitle = booktitle;

    this.price = price;

    this.instock = instock;

    return null;

 }

 public String ejbCreate(String isbn) throws RemoteException, CreateException, RemoteException {

    return ejbCreate(isbn, null, null, null, null);

 }

 public void ejbPostCreate(String isbn, String author, String booktitle, Double price, Integer instock) throws CreateException, RemoteException {

 }

 public void ejbPostCreate(String isbn) throws CreateException, RemoteException {

    ejbPostCreate(isbn, null, null, null, null);

 }

 public void ejbLoad() throws RemoteException {

 }

 public void ejbStore() throws RemoteException {

 }

 public void ejbRemove() throws RemoveException, RemoteException {

 }

 public void ejbActivate() throws RemoteException {

 }

 public void ejbPassivate() throws RemoteException {

 }

 public void setEntityContext(EntityContext entityContext) throws RemoteException {

    this.entityContext = entityContext;

 }

 public void unsetEntityContext() throws RemoteException {

    entityContext = null;

 }

 public String getIsbn() {

    return isbn;

 }

 public String getAuthor() {

    return author;

 }

 public void setAuthor(String author) {

    this.author = author;

 }

 public String getBooktitle() {

    return booktitle;

 }

 public void setBooktitle(String booktitle) {

    this.booktitle = booktitle;

 }

 public Double getPrice() {

    return price;

 }

 public void setPrice(Double price) {

    this.price = price;

 }

 public Integer getInstock() {

    return instock;

 }

 public void setInstock(Integer instock) {

    this.instock = instock;

 }

}

BookHome

import java.rmi.*;

import javax.ejb.*;

import java.util.Collection;

public interface BookHome extends EJBHome {

 public Book create(String isbn, String author, String booktitle, Double price, Integer instock) throws CreateException, RemoteException;

 public Book create(String isbn) throws RemoteException, CreateException;

 public Book findByPrimaryKey(String primaryKey) throws RemoteException, FinderException;

 public Collection findAll() throws RemoteException, FinderException;

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

BookSearch

import java.rmi.*;

import javax.ejb.*;

public interface BookSearch extends EJBObject {

 public Book findBookByISBN(String book_ISBN) throws RemoteException;

}

BookSearchBean

import javax.rmi.*;

import java.rmi.*;

import javax.ejb.*;

import java.util.*;

import javax.naming.*;

public class BookSearchBean implements SessionBean {

 private SessionContext sessionContext;

 public Context jndiContext;

 public BookHome bookHome;

 public void ejbCreate() {

 }

 public void ejbRemove() throws RemoteException {

 }

 public void ejbActivate() throws RemoteException {

 }

 public void ejbPassivate() throws RemoteException {

 }

 public void setSessionContext(SessionContext sessionContext) throws RemoteException {

    this.sessionContext = sessionContext;

    try {

     jndiContext = new InitialContext();

     Object object1=jndiContext.lookup("Book");

     bookHome=(BookHome)PortableRemoteObject.narrow(object1, BookHome.class);

   }

   catch (Exception ex) {

   ex.printStackTrace();

   System.out.println(ex);

   }

 }

 public Book findBookByISBN(String book_ISBN){

    try{

    String bookISBN=book_ISBN;

    Book b = bookHome.findByPrimaryKey(bookISBN);

    return b;

    }

    catch (Exception ex) {

      throw new EJBException(ex.getMessage());

    }

 }

}

import java.rmi.*;

import javax.ejb.*;

public interface BookSearchHome extends EJBHome {

 public BookSearch create() throws RemoteException, CreateException;

}

BookSearchClient

import com.borland.samples.micro.mobilebookstore.bookstore.ejb.*;

import javax.naming.*;

import java.rmi.RemoteException;

import javax.rmi.PortableRemoteObject;

public class BookSearchClient {

 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 BookSearchHome bookSearchHome = null;

 private BookSearch bookSearch = null;

 private Book book = null;

 //Construct the EJB test client

 public BookSearchClient() {

    long startTime = 0;

    if (logging) {

      log("Initializing bean access.");

      startTime = System.currentTimeMillis();

    }

    try {

      //get naming context

      Context ctx = new InitialContext();

      //look up jndi name

      Object ref = ctx.lookup("BookSearch");

      //cast to Home interface

      bookSearchHome = (BookSearchHome) PortableRemoteObject.narrow(ref, BookSearchHome.class);

      if (logging) {

        long endTime = System.currentTimeMillis();

        log("Succeeded initializing bean access.");

        log("Execution time: " + (endTime - startTime) + " ms.");

      }

    }

    catch(Exception e) {

      if (logging) {

        log("Failed initializing bean access.");

      }

      e.printStackTrace();

    }

 }

 //----------------------------------------------------------------------------

 // Methods that use Home interface methods to generate a Remote interface reference

 //----------------------------------------------------------------------------

 public BookSearch create() {

    long startTime = 0;

    if (logging) {

      log("Calling create()");

      startTime = System.currentTimeMillis();

    }

    try {

      bookSearch = bookSearchHome.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(): " + bookSearch + ".");

    }

    return bookSearch;

 }

 //----------------------------------------------------------------------------

 // Methods that use Remote interface methods to access data through the bean

 //----------------------------------------------------------------------------

 public Book findBookByISBN(String book_ISBN) throws RemoteException{

    long startTime = 0;

    if (logging) {

      log("Calling findBookByISBN(" + book_ISBN + ")");

      startTime = System.currentTimeMillis();

    }

    try {

     book = bookSearch.findBookByISBN(book_ISBN);

      if (logging) {

        long endTime = System.currentTimeMillis();

        log("Succeeded: findBookByISBN(" + book_ISBN + ")");

        log("Execution time: " + (endTime - startTime) + " ms.");

      }

    }

    catch(Exception e) {

      e.printStackTrace();

    }

    if (logging) {

      try {

        log("Return value from findBookByISBN(" + book_ISBN + "): " + book + ".");

        log("Author: " + book.getAuthor() + ".");

        log("Title: " + book.getBooktitle() + ".");

        log("Price: " + book.getPrice() + ".");

        log("In Stock: " + book.getInstock() + ".");

      }

      catch (Exception ex) {

      }

    }

   return book;

 }

 public void updateInStock() {

    try {

      Integer instock = book.getInstock();

      int is = instock.intValue();

      int updatedInstock = is -1;

      Integer newInstock = new Integer(updatedInstock);

      book.setInstock(newInstock);

    }

    catch(Exception e) {

       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) {

    BookSearchClient client = new BookSearchClient();

 }

}

BookSearchHome

BookSearch create()

BookSearch

public Book findBookByISBN(String book_ISBN) throws RemoteException;

BookSearchBean

       public Book findBookByISBN(String book_ISBN){

    try{

        jndiContext = new InitialContext();

     Object object1=jndiContext.lookup("Book");

     bookHome=(BookHome)PortableRemoteObject.narrow(object1, BookHome.class);

    String bookISBN=book_ISBN;

    Book b = bookHome.findByPrimaryKey(bookISBN);

    return b;

    }

    catch (Exception ex) {

      throw new EJBException(ex.getMessage());

    }

 }

具体用法:

 //look up jndi name

      Object ref = ctx.lookup("BookSearch");

//getHome

//cast to Home interface

      bookSearchHome = (BookSearchHome) PortableRemoteObject.narrow(ref, BookSearchHome.class);

//get interface

bookSearch = bookSearchHome.create();

//调用inteface的方法方法的实现在BookSearchBean

book = bookSearch.findBookByISBN(book_ISBN);



posted on 2009-01-07 17:35 阅读(424) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: