我的weblogic和jb7都配好了,classes12.zip也放在wl7lib下设置好了,我写了一个小程序测试连接池的情况,为什么还出这个java.lang.NullPoint

snowyangel 2002-11-25 10:48:26
我的错误:
D:\toolsetup\weblogic70\bea\jdk131_02\bin\javaw -classpath "D:\toolsetup\weblogic70\bea\user_projects\mydomain\test\classes;D:\toolsetup\weblogic70\bea\weblogic700\server\lib\weblogic_sp.jar;D:\toolsetup\weblogic70\bea\weblogic700\server\lib\weblogic.jar;D:\toolsetup\weblogic70\bea\jdk131_02\jre\lib\i18n.jar;D:\toolsetup\weblogic70\bea\jdk131_02\jre\lib\jaws.jar;D:\toolsetup\weblogic70\bea\jdk131_02\jre\lib\rt.jar;D:\toolsetup\weblogic70\bea\jdk131_02\jre\lib\sunrsasign.jar;D:\toolsetup\weblogic70\bea\jdk131_02\lib\dt.jar;D:\toolsetup\weblogic70\bea\jdk131_02\lib\htmlconverter.jar;D:\toolsetup\weblogic70\bea\jdk131_02\lib\tools.jar" test.test

java.lang.NullPointerException

at test.test.main(test.java:48)

java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleStatement

at java.lang.Class.getMethods0(Native Method)

at java.lang.Class.getMethods(Class.java:742)

at weblogic.rmi.utils.Utilities.getRemoteMethods(Utilities.java:382)

at weblogic.rmi.internal.StubGenerator.<init>(StubGenerator.java:60)

at weblogic.rmi.internal.StubGenerator.getStubClass(StubGenerator.java:627)

at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:646)

at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:641)

at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:59)

at weblogic.common.internal.RemoteObjectReplacer.resolveObject(RemoteObjectReplacer.java:231)

at weblogic.common.internal.ChunkedObjectInputStream.resolveObject(ChunkedObjectInputStream.java:51)

at weblogic.common.internal.ChunkedObjectInputStream$NestedObjectInputStream.resolveObject(ChunkedObjectInputStream.java:321)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:399)

at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2263)

at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519)

at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)

at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:111)

at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:91)

at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:56)

at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:161)

at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:128)

at weblogic.jdbc.common.internal.RmiDataSource_WLStub.getConnection(Unknown Source)

at test.test.main(test.java:23)

Exception in thread "main" stmt
我的问题:我的错误原因是什么?
1)java.lang.NullPointerException

at test.test.main(test.java:48)

为什么错误行指向我下面的stmt.close();


java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleStatement

...
这些有是什么错误,怎么解决呀
...全文
41 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowyangel 2002-12-15
  • 打赏
  • 举报
回复
url: jdbc:oracle:thin:@机子的ip地址:1521:实例名
实例名为:sqlplus->select instance_name from V$INSTANCE的名字
drivaer:oracle.jdbc.driver.OracleDriver
properties:
user=scott(数据库user名)
password=tiger(密码)
dll=ocijdbc8
protocol=thin
Leony 2002-11-26
  • 打赏
  • 举报
回复
我用你的程序用jdk1.3运行则出现如下错误:
naming exception
......................................................
snowyangel 2002-11-26
  • 打赏
  • 举报
回复
我自己把它解决了:我也不知道这样的方法的原因是对不对,我凭直觉解决了:
1)我从oracle下了一个新的classes12.zip,及其一个补丁
2)我从jb7中的default project properties中的required libary中添加了一个jdbc,->classes12.zip库
3)重新启动jb7,新写了一个项目,测试这个测试程序

就这样问题就解决
我的启示:
1)java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleStatement 我看了,oracle/jdbc/driver/OracleStatement.class,fa觉得可能是class 没有定义,所以就下了一个新的class.我觉得是不是旧的不支持weblogic.rmi.utils.Utilities.getRemoteMethods方法
2)我在jb7中加入这个jdbc库
---
我的结论:java.lang.NoClassDefFoundError: 在于找不到类
同时:非常谢谢你TechnoFantasy(www.applevb.com) 的热忱帮助,希望能有空多交流.
---
疑问:我这样方案对这个问题的解决正确在哪里?或者什么是症结?呵呵我是凭直觉解决的.

wangzhi99 2002-11-26
  • 打赏
  • 举报
回复
user是你连的数据库的用户名
password是用户名的密码
dll,protoclol是自动生成的
TechnoFantasy 2002-11-26
  • 打赏
  • 举报
回复
我的数据库连接方法:

public static DataSource getDataSource()
throws SQLException, NamingException{
if(m_ds == null){
Context ctx = null;
try{
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://localhost:80");
ctx = new InitialContext(ht);
m_ds = (DataSource)ctx.lookup("SS3000DB");
}
catch(Exception e){
err = e.toString();
}
finally{
try {ctx.close();}
catch (Exception e) {
// a failure occurred
}
}

}

return m_ds;
}

返回的是一个DataSource
snowyangel 2002-11-26
  • 打赏
  • 举报
回复
现在是错误的症结哪里?
Gemini_h 2002-11-26
  • 打赏
  • 举报
回复
snowyangel,想请教一下你:
在weblogic中的连接池中的properties属性有何讲究?比如就你的例子来说,
properties:
user=scott
password=snowyangel
dll=ocijdbc8
protocol=thin
这里边的user,password,dll,protocol之类的名字是固定的吗?它们的值(如user=scott)又是如何确定的呢?是在建立oracle数据库时就设定好的用户名和密码值吗?那么,在程序中赋给环境变量的值又有什么用呢??
snowyangel 2002-11-26
  • 打赏
  • 举报
回复
Leony(老树):如果是naming exception 这是你的JNDI(weblogic_)中的名字的大小写(很可能的)问题...呵呵 确保DataSource ds = (DataSource)ctx.lookup("你的weblogic7中数据源的jndi名");
snowyangel 2002-11-25
  • 打赏
  • 举报
回复
我的weblogic中的连接池设置为:
name:TestPool
url:jdbc:oracle:thin:@192.167.0.0:1521:oradb
drivername:oracle.jdbc.driver.OracleDriver
properties:
user=scott
password=snowyangel
dll=ocijdbc8
protocol=thin
我的数据源中的 jndiname:
MyOracleJNDI
大家帮忙看看怎么回事的错误..谢谢了
snowyangel 2002-11-25
  • 打赏
  • 举报
回复
我的测试连接池的程序:
package test;


import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import java.util.*;
public class test
{
public static void main(String[] args)
{
Statement stmt = null;
Connection conn = null;
ResultSet res = null;
try{
Hashtable env = new Hashtable();
env.put(InitialContext.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
env.put(InitialContext.PROVIDER_URL,"t3://192.167.0.0:7001");
//env.put(InitialContext.SECURITY_PRINCIPAL,"ejbserver");//System
// env.put(InitialContext.SECURITY_CREDENTIALS,"ejbserver");//weblogic
InitialContext ctx = new InitialContext(env);
DataSource ds = (DataSource)ctx.lookup("MyOracleJNDI");
conn = ds.getConnection("ejbserver", "ejbserver");

stmt = conn.createStatement();
res = stmt.executeQuery("select * from emp");
System.out.println("id------name------address");
while(res.next()){
//int id = res.getInt(1);
String name = res.getString("ENAME");
//String address = res.getString(3);
//System.out.println(id+"------"+name+"------"+address);
System.out.println("Ename: " + name);
}
}
catch(SQLException sse){
System.out.println("sql error!");
}
catch(NamingException e){
System.out.println("naming exception");
e.printStackTrace();
}
catch(Exception ee){
System.out.println("ee error: "+ee.getMessage());
}
finally{
try{
stmt.close();
conn.close();
}
catch(Exception se){System.out.print("stmt");se.printStackTrace();}
// catch(SQLException se){se.printStackTrace();}
}
}
}

1,221

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧