环境
Struts2-core-2.1.8.1
错误解决方法
在分析Jetty源码的过程中,部署一个Servlet应用方便分析Jetty处理浏览器的请求。在启动Jetty后,应用初始化的过程中,出现了错误。完整的错误信息如下:
15:24:58,015 ERROR [org.apache.struts2.dispatcher.Dispatcher] Dispatcher initialization failed
Unable to load configuration. - bean - jar:file:/D:/Study/servicemn/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:59:150
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
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.mortbay.start.Main.invokeMain(Main.java:194)
at org.mortbay.start.Main.start(Main.java:534)
at org.mortbay.start.Main.start(Main.java:441)
at org.mortbay.start.Main.main(Main.java:119)
Caused by: Unable to load bean: type:org.apache.struts2.components.template.TemplateEngine class:org.apache.struts2.components.template.JspTemplateEngine - bean - jar:file:/D:/Study/servicemn/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:59:150
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:221)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:169)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 29 more
Caused by: java.lang.NoClassDefFoundError: javax/servlet/jsp/JspWriter
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getDeclaredConstructors(Class.java:1836)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:211)
... 32 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.JspWriter
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:392)
at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 36 more
原因/解决方法:
1、查看 struts2-core-2.1.8.1.jar 中的struts-default.xml的59行,其内容如下:
<bean type="org.apache.struts2.components.template.TemplateEngine" name="jsp"
class="org.apache.struts2.components.template.JspTemplateEngine" />
2、根据错误信息的提示:Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.JspWriter
结合上述两点,断定问题是缺少了 jsp-api 类库。给Jetty增加其所需的jsp-api类库,如下所示:
问题解决。
如果 Struts2 报 Unable to load configguration. - bean 的错误,肯定是因为缺少所需的类库的引起的,可以根据错误信息的提示增加所需的类库即可。
<正文结束>
转者补充:
我遇到的问题类似,是缺少freemarker.jar,但我在WEB-INF/lib下是有个freemarker.jar的,我去freemarker的官网下载了个新的来替换,结果错误消失了。
分享到:
相关推荐
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
`struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...
struts2-core-2.3.15.1.jar
首先,我们来看`struts-json-plugin-2.1.8.jar`,这是Struts2的JSON插件,它允许Struts2的动作类直接返回JSON格式的数据,方便前端进行Ajax请求处理。该插件在2.1.8版本中修复了若干bug,并提供了对JSON输出的支持。...
struts2-jfreechart-plugin-2.1.8.1.jar
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...
struts2-convention-plugin-2.3.15.1.jar
struts2-spring-plugin-2.3.15.3.jar struts整合Spring的插件Jar包。
struts2-showcase-2.1.8.1.warstruts2-showcase-2.1.8.1.warstruts2-showcase-2.1.8.1.warstruts2-showcase-2.1.8.1.warstruts2-showcase-2.1.8.1.war
最新struts2-spring-plugin-2.3.24.1.jar
struts2-config-browser-plugin-2.3.24.jar, struts2-core-2.3.24.jar, struts2-jasperreports-plugin-2.3.24.jar, struts2-jfreechart-plugin-2.3.24.jar, struts2-pell-multipart-plugin-2.3.24.jar, struts2-...
Struts2 JSON Plugin是针对Apache Struts2框架的一个重要组件,版本为2.3.8。这个插件主要的功能是让Struts2应用程序能够轻松地处理JSON(JavaScript Object Notation)数据格式,使得Web应用可以方便地进行JSON序列...
struts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jar...
struts2-ssl-plugin-1.2.1.jar
《Spring与Struts整合:深入理解org.springframework.web.struts-sources-3.0.4.RELEASE.jar》 在Java Web开发领域,Spring框架以其强大的依赖注入和面向切面编程能力,而Struts则以其优秀的MVC架构模式,共同构建...
struts2-core-2.2.1.1.jar
总结来说,Struts2是一个强大的Java Web框架,其核心库与一系列依赖库共同工作,提供了一个全面的解决方案来构建复杂的Web应用。开发者可以利用Struts2的Action、Interceptor、Result等机制,结合Apache Commons库和...
4. **Spring 的Bean 定义**:在Spring 配置文件中,我们可以为Struts 2 的Action 定义bean,包括其属性、依赖关系以及生命周期方法。这使得Action 的配置更加集中,易于管理和扩展。 5. **Action 实例的生命周期**...
Struts2提供了一套强大的表单验证机制,可以在服务器端对用户输入的数据进行验证,并将错误信息反馈给用户。 **10. 插件系统** Struts2的插件系统使得扩展框架功能变得简单,例如,Spring插件可以方便地将Struts2与...
struts2-core-2.2.1-sources.jar 源码,学strut2源码时能用到的