關於tomcat 6 java.lang.NoClassDefFoundError
系統配置為 tomcat 6 +jdk 1.5,
出現java.lang.NoClassDefFoundError。
系統manger example均運行正常,只有新加的應用中導入class出現這個問題。
context文件放置在conf/C*/lo*/下面, 內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/nj-jsl" docBase="/usr/T/e/webapp"
debug="0" swallowOutput="true" reloadable="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/usr/T/e/log" prefix="access_log." suffix=".txt"
pattern="%t %h %r"/>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="/usr/T/e/log" prefix="etouch_log." suffix=".txt"
timestamp="true"/>
<Parameter name="HotelID" value="nj-jsl"
override="false"/>
<Parameter name="ConfigDir" value="/usr/T/U"
override="false"/>
</Context>
web.xml 放置在 /usr/TouchLink/eTouch/webapp下面,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>etouch</display-name>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>EtouchInit</servlet-name>
<servlet-class>com.gljx.etouch.web.EtouchInit</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ExcelGenerator</servlet-name>
<servlet-class>com.gljx.etouch.web.ExcelGenerator</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ExcelGenerator</servlet-name>
<url-pattern>*.xls</url-pattern>
</servlet-mapping>
</web-app>
class文件放置在WEB-INF下面。
每次打開login.jsp頁面提示如下錯誤:
root cause
java.lang.ClassNotFoundException: org.apache.jsp.login_jsp
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:618)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
An error occurred at line: 1 in the generated java file
The type com.gljx.auth.Authenticator cannot be resolved. It is indirectly referenced from required .class files
An error occurred at line: 6 in the generated java file
Only a type can be imported. com.gljx.auth.Authenticator resolves to a package
An error occurred at line: 7 in the generated java file
Only a type can be imported. com.gljx.auth.User resolves to a package
An error occurred at line: 15 in the jsp file: /login.jsp
Authenticator cannot be resolved to a type
以上問題在tomcat 4中均沒有,一切正常,jdk版本,環境均與tomcat 4下一直。
請教各位了。謝謝!!!
[ 本帖最後由 fangjiafu 於 2009-9-23 14:34 編輯 ]
《解決方案》
An error occurred at line: 15 in the jsp file: /login.jsp
Authenticator cannot be resolved to a type
報錯很清楚啊
《解決方案》
回復 #2 zhoumiao 的帖子
我也知道它報 這個類找不到,可是在tomcat 4 下沒這個問題。
是需要更改什麼配置嗎?
同樣的環境,只是更改了一下tomcat
《解決方案》
你確定在WEB-INF/classes下有這個class文件?怎麼報錯說它是個package?
《解決方案》
回復 #4 zhoumiao 的帖子
我確認有,我只要把tomcat版本改成4的馬上就ok,提怪的要死。
只怪自己以前沒有仔細研究過web這個東西。
《解決方案》
能把login.jsp和你web應用的目錄結構貼出來看看么?或者你嘗試直接訪問其他的jsp頁面,看會不會出錯:em17: