在BuildPath里加入commons-lang3-3.1.jar,在程序中使用StringUtils工具类,编译没有问题,但运行时报错:
HTTP Status 500 - Servlet execution threw an exception
--------------------------------------------------------------------------------
type Exception report
message Servlet execution threw an exception
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
yf.GetPartBodyContent.getFilename(GetPartBodyContent.java:57)
yf.GetPartBodyContent.doPost(GetPartBodyContent.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)
yf.GetPartBodyContent.getFilename(GetPartBodyContent.java:57)
yf.GetPartBodyContent.doPost(GetPartBodyContent.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
查阅网上资料,解决了此问题,说明如下:
HTTP Status 500 - Servlet execution threw an exception
--------------------------------------------------------------------------------
type Exception report
message Servlet execution threw an exception
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
yf.GetPartBodyContent.getFilename(GetPartBodyContent.java:57)
yf.GetPartBodyContent.doPost(GetPartBodyContent.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)
yf.GetPartBodyContent.getFilename(GetPartBodyContent.java:57)
yf.GetPartBodyContent.doPost(GetPartBodyContent.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
查阅网上资料,解决了此问题,说明如下:
Java Build Path 加入的是编译需要的包,比如import *********.StringUtils 如果没有相应的包,则在编译的时候会报错;当在Build Path里导入了包,但没有把包放入WEB-INF/lib目录下,则在运行时会报ClassNotFoundException的异常。所以,在java ee项目中,如果要使用StringUtils工具类,或其他类,API,需要做两件事:
1、在Build Path 里导入包,确保编译正常
2、将.jar包放入WEB-INF/lib目录下,程序运行才能找到相应的类