| FederatedServiceBean.java |
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
// $Id: FederatedServiceBean.java,v 1.1.1.1 2004/08/04 09:07:48 tdiesler Exp $
package org.jboss.test.jbossnet.external.server;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import org.jboss.test.util.ejb.SessionSupport;
import org.jboss.test.jbossnet.external.google.GoogleSearchPort;
import org.jboss.test.jbossnet.external.google.GoogleSearchService;
import org.jboss.test.jbossnet.external.google.GoogleSearchResult;
import org.jboss.test.jbossnet.external.babelfish.BabelFishPortType;
import org.jboss.test.jbossnet.external.babelfish.BabelFishService;
import org.jboss.logging.Logger;
import javax.naming.InitialContext;
/**
* implementation of a federated ejb service making
* use of external web services bound in the JNDI tree.
* @version 1.0
* @author cgjung
* @ejb.bean name="FederatedService"
* display-name="Federated Service"
* type="Stateless"
* view-type="both"
* jndi-name="FederatedService"
* local-jndi-name="FederatedServiceLocal"
* @ejb.transaction type="Required"
* @jboss-net.web-service urn="FederatedService"
* @ejb.interface remote-class="org.jboss.test.jbossnet.external.FederatedService" local-class="org.jboss.test.jbossnet.external.server.FederatedServiceLocal" extends="javax.ejb.EJBObject" local-extends="javax.ejb.EJBLocalObject"
* @ejb.home remote-class="org.jboss.test.jbossnet.external.FederatedServiceHome" local-class="org.jboss.test.jbossnet.external.server.FederatedServiceHomeLocal" extends="javax.ejb.EJBHome" local-extends="javax.ejb.EJBLocalHome"
*/
public class FederatedServiceBean extends SessionSupport implements SessionBean
{
private static Logger log = Logger.getLogger(FederatedServiceBean.class);
/**
* first accesses google to produce a set of
* search results and then connects to babelfish
* to translate the content of the title of
* one of them
* @jboss-net.web-method
* @ejb.interface-method view-type="both"
*/
public String findAndTranslate(String searchTerm) throws Exception
{
// look into JNDI
InitialContext initContext = new InitialContext();
// find external references there
GoogleSearchService googleService =
(GoogleSearchService) initContext.lookup("Google");
GoogleSearchPort google = googleService.getGoogleSearchPort();
String licenseKey =
System.getProperty(
"google.license",
"Wr5iTf5QFHJKmmnJn+61lt9jaMuWMKCj");
GoogleSearchResult searchResult =
google.doGoogleSearch(
licenseKey,
searchTerm,
0,
10,
true,
"",
false,
"",
"latin1",
"latin1");
log.debug("Query for: '" + searchTerm + "' returned: " + searchResult);
BabelFishService babelFishService =
(BabelFishService) initContext.lookup("BabelFish");
BabelFishPortType babelFish = babelFishService.getBabelFishPort();
// and call them
try
{
String translationResult = babelFish.babelFish("en_de", searchTerm);
log.debug(
"Translation of: '"
+ searchTerm
+ "' returned: "
+ translationResult);
return translationResult;
} catch (RemoteException e)
{
// sometimes babelfish is down
return "This service is currently disabled.";
}
}
}
| FederatedServiceBean.java |