发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

动态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);
我怀疑是不是两次动态加载出错(第二次加载数据库驱动)。不是因为找不到数据库驱动的路径。
请帮忙,谢谢!

2003-06-27 12:20

解决了,原来是因为这个里面(Object obj = ServletHelper.LoadNamedClass(sClsPath,sClsName);)用的是URLClassLoader(urls);这个好像有改变掉上下文的路径(导致classpath找不到了)。我把它改为了Class.forName();就可以了。

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com