当前位置: 技术问答>java相关
tomcat 中servlet引用其他package时遇到的怪问题
来源: 互联网 发布时间:2015-05-26
本文导语: 同样一个类, 比如package1.test1 放到WEB-INF/classes 目录下,被serverlet引用就一切正常 但是如果放到其他目录下, 比如d:lib 然后在classpath里包含这个目录 就servlet就只能调用这个类里的静态方法。 如果new就会得到 java.la...
同样一个类,
比如package1.test1
放到WEB-INF/classes
目录下,被serverlet引用就一切正常
但是如果放到其他目录下,
比如d:lib
然后在classpath里包含这个目录
就servlet就只能调用这个类里的静态方法。
如果new就会得到
java.lang.NoClassDefFoundError
错误信息
有人也遇到过这样的问题吗?
比如package1.test1
放到WEB-INF/classes
目录下,被serverlet引用就一切正常
但是如果放到其他目录下,
比如d:lib
然后在classpath里包含这个目录
就servlet就只能调用这个类里的静态方法。
如果new就会得到
java.lang.NoClassDefFoundError
错误信息
有人也遇到过这样的问题吗?
|
是不是 tomcat 的 bug
你把该 package 放在 tomcatlib 下,然后在 classpath里包含该目录试试。
你把该 package 放在 tomcatlib 下,然后在 classpath里包含该目录试试。
|
这很正常,classpath不是万能的,不能乱用。Tomcat为了避免干扰一般会建立自己的classpath,所以系统的classpath会被忽略的。根据Servlet规范,类就应该放在WEB-INF/classes下面,jar应该放在WEB-INF/lib下面。