2010-01-27 46 views
0

我是Struts 2的新手。在使用Tomcat 5配置Struts 2时,我收到以下异常。我搜索了很多论坛,但没有提供任何解决方案。使用Tomcat 5.0配置Struts2.1.6时出现异常

这里是异常堆栈跟踪:

 
java.lang.NullPointerException 
at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:203) 
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:511) 
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:482) 
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:438) 
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:265) 
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111) 
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:189) 
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55) 
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360) 
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403) 
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190) 

这里是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
    <web-app version="2.4" 
     xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
     <filter> 
      <filter-name>struts</filter-name> 
      <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
     </filter> 
     <filter-mapping> 
      <filter-name>struts</filter-name> 
      <url-pattern>/*</url-pattern> 
     </filter-mapping> 
    </web-app> 

下面是struts.xml的文件

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
<include file="struts-default.xml"/> 
<!-- Add packages here --> 
<package name="default" extends="struts-default"> 
    <action name="HelloWorld" class="com.sid.HelloWorldAction"> 
    <result>/pages/login.jsp</result> 
    </action> 
</package> 
</struts> 

该名单如下:我在我的班级路线上有罐子:

 
commons-beanutils-1.7.0.jar 
commons-collections-3.2.jar 
commons-digester-1.8.jar 
commons-fileupload-1.2.1.jar 
commons-io-1.3.2.jar 
commons-lang-2.4.jar 
commons-logging-1.0.4.jar 
commons-net-1.4.1.jar 
commons-validator-1.3.0.jar 
displaytag-1.1.jar 
displaytag-export-poi-1.1.jar 
freemarker-2.3.13.jar 
ibatis-2.3.4.726.jar 
iText-2.1.3.jar 
jstl.jar 
log4j-1.2.15.jar 
mail-1.3.3.jar 
ognl-2.6.11.jar 
poi-3.0-rc4-20070503.jar 
spring.jar 
standard.jar 
struts2-convention-plugin-2.1.6.jar 
struts2-core-2.1.6.jar 
struts2-spring-plugin-2.0.11.1.jar 
struts2-tiles-plugin-2.1.6.jar 
tiles-api-2.0.6.jar 
tiles-core-2.0.6.jar 
tiles-jsp-2.0.6.jar 
xwork-2.1.2.jar 
+0

当我发布这个问题时,我不知道Jeff Atwood是谁。谢谢杰夫。哦,顺便说一句,我刚买了书“博客预订:有效的编程:更多的写作代码” – Sid 2012-07-11 16:28:52

回答

1

当你正在使用的弹簧插件尝试添加Spring上下文加载器听者到你的web.xml

<listener> 
     <listener-class> 
      org.springframework.web.context.ContextLoaderListener 
     </listener-class> 
    </listener> 
+0

谢谢Vinayak。感谢您的回复。但是我没有看到与Spring有关的任何配置。我在类路径中有Spring jar,但web.xml或struts.xml不指定与Spring相关的配置。在这种情况下我不能使用Spring?谢谢。 – Sid 2010-01-27 11:43:41

+0

好吧,我明白了。我在classpath上有那个jar struts2-spring-plugin-2.0.11.1.jar,这是导致问题的原因。 我所做的是把最低要求的罐子。这是最低要求的罐子: 共享记录-1.1.jar, freemarker的-2.3.8.jar 的jstl.jar, OGNL-2.6.11.jar, Struts2的核心 - 2.0.6.jar, xwork-2.0.1.jar – Sid 2010-01-27 13:30:38

1

典型的struts-2差错误日志。你会认为他们会花费额外的时间检查空值并给出一个有意义的错误消息?不。欢迎来到opensource。 Struts2在安装和运行时非常令人沮丧。无论如何,如果你不打算配置它,拿出spring-plugin。

+0

感谢Johhny,它在我删除了spring插件配置后工作。 – Sid 2010-06-07 06:11:54