Obtain a remote connection to a DataSource or EJB (Weblogic)Tag(s): Servlet/JSP
It's possible to obtain a remote connection to a Datasource defined in the application server. In this example, the connection is made to a Weblogic server so you need wlclient.jar in the classpath.
import java.sql.*;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import javax.sql.DataSource;
public class RemoteConnection {
private RemoteConnection() { }
public static void main(String args[]) throws Exception {
Properties env = new Properties();
String datasourceName = "mydatasourcename";
env.put("java.naming.factory.initial",
"weblogic.jndi.WLInitialContextFactory");
env.put("java.naming.provider.url",
"t3://xxxxxxxx-xxxxx.xxx.xxxxx:7101");
InitialContext ctxProxy = new InitialContext(env);
Object dsObj = ctxProxy.lookup(datasourceName);
DataSource ds = (DataSource) PortableRemoteObject.narrow(dsObj,
javax.sql.DataSource.class);
PreparedStatement ps = null;
Connection conn = null;
ResultSet result = null;
try {
conn = ds.getConnection();
String SelectString = "SELECT NAME, ADDRESS FROM EMPLOYEE";
ps = conn.prepareStatement(SelectString);
for (result = ps.executeQuery(); result.next();) {
String data = result.getString(1) + " : " + result.getString(2);
System.out.println(data);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
result.close();
ps.close();
conn.close();
conn = null;
ps = null;
result = null;
}
}
}
import java.util.Properties;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import com.company.common.myejb.*;
public class RemoteEJBCall {
private RemoteEJBCall() { }
public static void main(String args[]) throws Exception {
Properties env = new Properties();
env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
env.put(javax.naming.Context.PROVIDER_URL,
"t3://xxxxxxxx-xxxxx.xxx.xxxxx:7101");
InitialContext ctx = new InitialContext(env);
Object obj = ctx.lookup("common/MyEJB");
MyEJBHome home = (((MyEJBHome) PortableRemoteObject
.narrow(obj, MyEJBHome.class)));
MyEJB myEJB = home.create();
System.out.println(myEJB.doit());
}
}
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com