struts2.2.1配置时遇到的若干问题

在配置Struts2.2.1时遇到了初始化错误,问题源于缺少必要的jar包。首先,仅放入struts-core-2.2.1.jar, xwork-core-2.2.1.jar 和 ognl-3.0.jar导致配置失败,解决方案是添加commons-io-1.3.2.jar和commons-fileupload-1.2.1.jar到WEB-INF/lib目录。然而,这之后又出现InvocationTargetException,原因是缺少Javassist库,解决方法是从struts2-blank-2.2.1的/WEB-INF/lib/中获取javassist-3.7.ga.jar并添加到相应目录。" 137705876,8567743,理解Spring框架:BeanDefinitionRegistry深度解析,"['spring', 'java', 'ioc容器']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写了一个struts2很简单的Hello world部署失败了。。。@_@

 

错误提示如下:

Unable to load configuration. - bean - jar:file:/%app%/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:46:178

 

搜索得到

 

原因:

 

只讲struts-core-2.2.1.jar, xwork-core-2.2.1.jar 和 ognl-3.0.jar放入了/%app%/WEB-INF/lib/

 

解决办法:

将commons-io-1.3.2.jar和commons-fileupload-1.2.1.jar加入到/%app%/WEB-INF/lib/中即可

 

 

 

 

重启继续出现问题。。。。。@_@

 

错误提示如下:

 

严重: Dispatcher initialization failed
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
 at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:295)
 at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:431)
 at com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:207)
 at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51)
 at com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93)
 at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487)
 at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484)
 at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574)
 at com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484)
 at com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:252)
 at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
 at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
 at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
 at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
 at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:259)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
 at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
 at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
 at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
 at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
 at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
 at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
 at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
 at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
 at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
 at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
 at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
 at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
 at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
 at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
 at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
 at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
 at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
 at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.reflect.InvocationTargetException
 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 com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:293)
 ... 40 more
Caused by: java.lang.ExceptionInInitializerError
 at com.opensymphony.xwork2.ognl.OgnlValueStackFactory.setContainer(OgnlValueStackFactory.java:85)
 ... 45 more
Caused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency!
 at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165)
 ... 46 more
Caused by: java.lang.ClassNotFoundException: javassist.ClassPool
 at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:959)
 at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1430)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:169)
 at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:162)
 ... 46 more

 

搜索得到

 

原因:

缺少Javassist库,在struts/libs/下没有,需到struts2-blank-2.2.1的/WEB-INF/lib/中找

 

解决方法:

在struts2-blank-2.2.1.war中找到javassist-3.7.ga.jar加入到%app%/WEB-INF/libs/中即可

 

 

长时间不接触编程,白痴了很多,部署hello world都费了那么大劲-_-|||

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值