首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

很怪异的有关问题,请帮忙分析下哦

2012-02-02 
很怪异的问题,请帮忙分析下哦?我现在在tomcat里发布了2个工程项目,GBSS1,GBSS2这两个工程里,有个同名的jav

很怪异的问题,请帮忙分析下哦?
我现在在tomcat里发布了2个工程项目,GBSS1,GBSS2
这两个工程里,有个同名的java类,比如是DBPass.java,这个类有一个静态方法叫 doSelect(),

我现在发现一个奇怪的问题,我在操作GBSS2工程的菜单的时候,需要调用DBPss的doSelect()方法,按理说,应该调用GBSS2下的DBPss的doSelect()方法。但是,我通过debug追踪发现,程序却是调用的GBSS1的DBPss类的doSelect()方法。请帮我分析这是为什么哦?难道是跟静态方法有关?最好能从内存角度帮我分析下哦,谢谢

[解决办法]
我是这样理解的,不知道对不对,楼主可以做参考,
1、当tomcat启动过后,可能是用两个线程来管管理两个不同的项目。
2、所以两个项目所对应的class文件应该是“同时”被加载进内存的,也就是他们是被同一个类加载器加载进去的。 因此他们具有相同的命名空间,他们之间也就具备了数据通讯的条件了。
3、static 关键字 对应的是类 的属性,不是某个对象的属性。也就是说,在同一个命名空间里面类的静态属性是全局共享的。
[解决办法]
包名.DBPss.doSelect()试试
[解决办法]
你把另外一个工程close掉,
[解决办法]
你看下你调用这个方法的bean,import的是不是GBSS2,是不是引入的时候写错了?

热点排行
Bad Request.