En este punto, BidderBean.getMatchingItemsList pasa la cadena de búsqueda al método findAllMatchingItems declarado en el interface AuctionItemHome. Este método es un método buscador, y la implementación del contenedor varía la forma en que maneja las llamadas a los métodos finder. Los contenedores BEA Weblogic buscan en el descriptor de desarrollo del Bean la información sobre los métodos finder.
En el caso de la busqueda, el descriptor de desarrollo mapea la cadena de búsqueda pasada a AuctionItemHome.findAllMatchingItems al campo summary en la tabla AuctionItems de la base de datos. Este le dice al servidor Enterprise JavaBeansTM que recupere datos de todos los campos que en el campo summary contengan el texto de la cadena de búsqueda.

Esta sección pasea a través de las diferentes partes del código de búsqueda finder.
Los resultados de la búsqueda se devuelven a este método en una variable Enumeration.
private void searchItems(ServletOutputStream out,
HttpServletRequest request)
throws IOException {
//Retrieve search string
String searchString=request.getParameter(
"searchString");
//Create HTML page
String text = "Click Item number for description
and to place bid.";
setTitle(out, "Search Results");
try {
addLine("<BR>"+text, out);
//Look up home interface for BidderBean
BidderHome bhome=(BidderHome) ctx.lookup(
"bidder");
//Create remote interface for BidderBean
Bidder bid=bhome.create();
//Pass search string to BidderBean method
Enumeration enum=(Enumeration)
bid.getMatchingItemsList(searchString);
if(enum != null) {
displayitems(enum, out);
addLine("", out);
}
} catch (Exception e) {
addLine("AuctionServlet Search Items error",
out);
System.out.println("AuctionServlet <newlist>:
"+e);
}
out.flush();
}
El resultado de la búsqueda es devuelto a este método en una variableEnumeration.
public Enumeration getMatchingItemsList(
String searchString)
throws RemoteException {
Enumeration enum=null;
try{
//Create Home interface for AuctionItemBean
AuctionItemHome home = (AuctionItemHome)
ctx.lookup("auctionitems");
//Pass search string to Home interface method
enum=(Enumeration)home.findAllMatchingItems(
searchString);
}catch (Exception e) {
System.out.println("getMatchingItemList: "+e);
return null;
}
return enum;
}
Cuando se usan estos contenedores, incluso si el Bean tiene implementaciones del método finder, son ignorados y en su lugar se consultan las selecciones en el descriptor de desarrollo.
//Declare method in Home interface public Enumeration findAllMatchingItems( String searchString) throws FinderException, RemoteException;
El descriptor de desarrollo para AuctionItemBean proporciona finderDescriptors para todos los métodos finder declarados en el interface AuctionItemHome. El finderDescriptor para el método findAllMatchingItems mapea la cadena de búsqueda al campo summary de la tabla AuctionItems de la base de datos. Esto le dice al servidor Enterprise JavaBeans que recupere los datos de todas las filas de la tabla en las que el contenido del campo summary corresponda con el texto de la cadena de búsqueda.
(finderDescriptors "findAllItems()" "(= 1 1)" "findAllNewItems(java.sql.Date newtoday)" "(= startdate $newtoday)" "findAllClosedItems(java.sql.Date closedtoday)" "(= enddate $closedtoday)" "findAllMatchingItems(String searchString)" "(like summary $searchString)" ); end finderDescriptors