In the beginning, I configured user libraries (Struts-2.2.3 for multiple projects) according to a textbook ), then introduce Struts-2.2.3 directly (this package will not be placed in the project folder ):
However, the program cannot be started due to an error as shown in the following figure:
Severe: exception starting filter struts2
Java. Lang. classnotfoundexception: org. Apache. struts2.dispatcher. Ng. Filter. strutsprepareandexecutefilter
At org. Apache. Catalina. loader. webappclassloader. loadclass (webappclassloader. Java: 1680)
At org. Apache. Catalina. loader. webappclassloader. loadclass (webappclassloader. Java: 1526)
At org. Apache. Catalina. Core. applicationfilterconfig. getfilter (applicationfilterconfig. Java: 269)
At org. Apache. Catalina. Core. applicationfilterconfig. setfilterdef (applicationfilterconfig. Java: 422)
At org. Apache. Catalina. Core. applicationfilterconfig. <init> (applicationfilterconfig. Java: 115)
At org. Apache. Catalina. Core. standardcontext. filterstart (standardcontext. Java: 4071)
At org. Apache. Catalina. Core. standardcontext. Start (standardcontext. Java: 4725)
At org. Apache. Catalina. Core. containerbase. Start (containerbase. Java: 1053)
At org. Apache. Catalina. Core. standardhost. Start (standardhost. Java: 840)
At org. Apache. Catalina. Core. containerbase. Start (containerbase. Java: 1053)
At org. Apache. Catalina. Core. standardengine. Start (standardengine. Java: 463)
At org. Apache. Catalina. Core. standardservice. Start (standardservice. Java: 525)
At org. Apache. Catalina. Core. standardserver. Start (standardserver. Java: 754)
At org. Apache. Catalina. startup. Catalina. Start (Catalina. Java: 595)
At sun. Reflect. nativemethodaccessorimpl. invoke0 (native method)
At sun. Reflect. nativemethodaccessorimpl. Invoke (nativemethodaccessorimpl. Java: 39)
At sun. Reflect. delegatingmethodaccessorimpl. Invoke (delegatingmethodaccessorimpl. Java: 25)
At java. Lang. Reflect. method. Invoke (method. Java: 597)
At org. Apache. Catalina. startup. Bootstrap. Start (Bootstrap. Java: 289)
At org. Apache. Catalina. startup. Bootstrap. Main (Bootstrap. Java: 414)
A bit of Baidu in Google, there is no effective solution. According to the error message, the org. Apache. struts2.dispatcher. Ng. Filter. strutsprepareandexecutefilter class cannot be found. However, I did find this class manually:
To ensure that the class name is not spelled correctly, right-click the strutsprepareandexecutefilter. class file, select "Copy qualified name" (copy the exact name), and paste it to the Web. save and re-run the XML file. The same error occurs, proving that the class name is not spelled correctly.
Finally, I abandoned user libraries and manually copied the related jar of struts2 to the/webcontent/WEB-INF/lib directory:
Run the program again!
That is to say, Tomcat loads resources from the WEB-INF/directory by default, eclipse in the release of the program, the related resources of user libraries are not copied to the WEB-INF/directory (eclipse will put all the non *. java file to the WEB-INF/classes directory), so Tomcat says it cannot find the required class.
Reprinted from: http://blog.csdn.net/njnu_mjn/article/details/6684661
My problem occurs after submitting SVN, the above error occurs in the running program. It is okay to run it before submitting. So it seems that this problem will occur in the future. You must delete the previous package first, then, use the jar as sourse folder again under the lib directory!