Página Inicial > java > Recuperando um datasource no Glassfish a partir de um cliente desktop

Recuperando um datasource no Glassfish a partir de um cliente desktop

No post anterior falei como recuperar um datasource no Glassfish a partir de um client web. Hoje faleremos como fazer a mesma coisa. só que a partir de um client desktop.

O processo consiste em iniciar o contexto com atributos adicionais que auxiliem a aplicação a procurar de forma correta e encontrar o recurso solicitado.

public javax.sql.DataSource getDataSource() {
try {
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty(Context.URL_PKG_PREFIXES, "com.sun.enterprise.naming");
props.setProperty(Context.STATE_FACTORIES, "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
// servidor
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
// porta do servidor
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext initialContext = new InitialContext(props);
DataSource datasource = (DataSource) initialContext.lookup("jdbc/seuDataSource");
return datasource;
} catch (NamingException ex) {
ex.printStackTrace();
return null;
}
}

Os atributos:

props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");

são opcionais e só precisam ser utilizados se o servidor estiver em um endereço diferente do cliente ou porta for diferente da padrão.

Algo que é importante observar é que é necessário que o classpath da aplicação client esteja configurado com os seguintes pacotes:

$GLASSFISH_HOME/lib/appserv-admin.jar
$GLASSFISH_HOME/lib/appserv-rt.jar
$GLASSFISH_HOME/lib/install/applications/jmsra/imqjmsra.jar
$GLASSFISH_HOME/lib/javaee.jar

além, é claro, do pacote com o driver JDBC para banco de dados que você está tentando acessar.

Categories: java Tags:
  1. Nenhum comentário ainda.
  1. Nenhum trackback ainda.