|
|
|
动态invoke的问题?
|
2003年06月27日 10:51
|
|
|
|
在tomcat服务器下,我在一个servlet里动态调用我的另外一个类的方法。 出错。代码如下 Object obj = ServletHelper.LoadNamedClass(sClsPath,sClsName); Method method = obj.getClass().getMethod(sMethodName,new Class[]{Document.class}); method.invoke(obj,new Object[]{doc}); 如果我把上面的obj换成真正的对象的话调用不会出错(如:aCertReq.reqInputDo(doc);)。 我不用servlet直接在java类里测试动态调用没有这个问题。 我在reqInputDo(doc)里操作过jdbc,代码如下: Class.forName(device); m_con = DriverManager.getConnection(url, user, pass); 我怀疑是不是两次动态加载出错(第二次加载数据库驱动)。不是因为找不到数据库驱动的路径。 请帮忙,谢谢!
|
|
|
|
|
|
Re: 动态invoke的问题?
|
2003年06月27日 12:20
|
|
|
|
解决了,原来是因为这个里面(Object obj = ServletHelper.LoadNamedClass(sClsPath,sClsName);)用的是URLClassLoader(urls);这个好像有改变掉上下文的路径(导致classpath找不到了)。我把它改为了Class.forName();就可以了。
|
|
|
|