package fr.istic.server; import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.ServletException; import org.EurosDollars.API.EDAPI; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import fr.istic.client.ConvertData; @SuppressWarnings("serial") public class ConvertDataImpl extends RemoteServiceServlet implements ConvertData { /** * Use Smart Factory by default. */ private static final String DEFAULT_INITIAL_CONTEXT_FACTORY = "org.ow2.easybeans.component.smartclient.spi.SmartContextFactory"; private EDAPI bean; @Override public void init() throws ServletException { super.init(); try { bean = (EDAPI) getInitialContext().lookup("EurosDollars"); } catch (NamingException e) { e.printStackTrace(); } } /** * @return Returns the InitialContext. * @throws NamingException * If the Context cannot be created. */ private static Context getInitialContext() throws NamingException { // if user don't use jclient/client container // we can specify the InitialContextFactory to use // But this is *not recommended*. Hashtable<String, Object> env = new Hashtable<String, Object>(); env.put(Context.INITIAL_CONTEXT_FACTORY, getInitialContextFactory()); // Usually a simple new InitialContext() without any parameters is // sufficent. // return new InitialContext(); return new InitialContext(env); } /** * Returns a configurable InitialContextFactory classname.<br/> * Can be configured with the * <code>easybeans.client.initial-context-factory</code> System property. * @return Returns a configurable InitialContextFactory classname. */ private static String getInitialContextFactory() { String prop = System .getProperty("easybeans.client.initial-context-factory"); // If not found, use the default if (prop == null) { prop = DEFAULT_INITIAL_CONTEXT_FACTORY; } return prop; } public String euros2dollars(String euros) { return bean.euros2dollars(euros); } public String dollars2euros(String dollars) { return bean.dollars2euros(dollars); } }