Connexion de base de données via WebLogic

Donc, j'ai une base de données MySQL, et j'ai une source de données sur une instance locale de WebLogic qui est connecté à la base de données. Je suis en train d'écrire un peu de code client qui va tout simplement se connecter et de requête. Je vais avoir des problèmes avec l'obtention d'une connexion à partir de la source de données. Voici mon code pour l'instant. Je suis en cours d'exécution WebLogic 12c.

    import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class ConnectionTest {
public static void main(String... args) {
ConnectionTest tCon = new ConnectionTest();
tCon.TestConnection();
}
public void TestConnection() {
Context ctx = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Hashtable<String, String> props = new Hashtable<String, String>();
props.put("java.naming.factory.initial",
"weblogic.jndi.WLInitialContextFactory");
props.put("java.naming.provider.url", "t3://localhost:7001");
props.put("java.naming.security.principal", "weblogic");
props.put("java.naming.security.credentials", "welcome1");
ctx = new InitialContext(props);
DataSource ds = (DataSource) ctx.lookup("RegexDB");
System.out.println(ds);
DAO dao = new DAO();
conn = ds.getConnection();
stmt = conn.createStatement();
stmt.execute("select * from regular_ex");
rs = stmt.getResultSet();
ArrayList<HashMap<String, Object>> results = dao
.resultSetToArrayList(rs);
dao.printArrayList(results);
stmt.close();
conn.close();
} catch (NamingException e) {
//TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

Cela ne parvient pas à ds.getConnection() avec l'exception suivante:

java.lang.ClassCastException: weblogic.jdbc.common.internal.ConnectionEnv cannot be cast to java.io.Serializable
at weblogic.iiop.IIOPOutputStream.writeObject(IIOPOutputStream.java:2285)
at weblogic.utils.io.ObjectStreamClass.writeFields(ObjectStreamClass.java:414)
at weblogic.corba.utils.ValueHandlerImpl.writeValueData(ValueHandlerImpl.java:235)
at weblogic.corba.utils.ValueHandlerImpl.writeValueData(ValueHandlerImpl.java:225)
at weblogic.corba.utils.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:182)
at weblogic.iiop.IIOPOutputStream.write_value(IIOPOutputStream.java:1983)
at weblogic.iiop.IIOPOutputStream.write_value(IIOPOutputStream.java:2021)
at weblogic.iiop.IIOPOutputStream.writeObject(IIOPOutputStream.java:2285)
at weblogic.jdbc.common.internal.RmiDataSource_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:695)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:520)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:516)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

J'ai wlclient.jar, wlsafclient.jar et weblogic.jar dans mon buildpath. J'ai essayé toutes sortes de combinaisons de l'ajout/la suppression de ces jarres, mais j'obtiens toujours la même erreur, peu importe ce que je fais. Toute aide serait grandement appréciée.

retirez les bocaux et il suffit d'utiliser weblogic.jar s'assurer que vous prenez le pot de <weblogic_installation_directory>\serveur\lib
J'ai déjà essayé. Ces pots sont à partir de mon serveur d'installation. Si je n'utilise que le weblogic.jar, j'obtiens l'exception suivante:Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/sécurité/sujet/AbstractSubject
J'ai essayer avec weblogic 12c, j'ai juste couru le même code avec Weblogic 10, et cela a fonctionné correctement, juste avec weblogic.jar
Selon ce post sur le forum: kr.forums.oracle.com/forums/thread.jspa?threadID=940386, vous avez besoin de construire et d'utiliser ce pot: wlfullclient.jar. C'est ce qui explique comment le construire: docs.oracle.com/cd/E12839_01/web.1111/e13717/jarbuilder.htm

OriginalL'auteur Reid Mac | 2012-05-31