tags:

views:

371

answers:

2

Hi,

I am new to Struts 2. While configuring Struts 2 with Tomcat 5, I received the following exception. I have searched many forums but none gave any solutions.

Here is the exception stack trace:

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)

Here is my web.xml file:

    <?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"&gt;  
       <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>  

Here is struts.xml file

<?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"&gt;
<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>

Here is the list of jars I have on my classpath:

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
A: 

As you are using the spring plugin try adding the Spring context loader listner to you web.xml

<listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
Vinayak.B
Thanks Vinayak. Thanks for your reply. But I don't see any configuration related to Spring. I do have the Spring jar in class path, but web.xml or struts.xml do not specify Spring related configuration. How can I not use Spring in this case? Thanks.
SidCool
Ok I got it. I had that jar struts2-spring-plugin-2.0.11.1.jar on classpath which was causing problem.What I did was put minimum required jars. These are the minimum required jars:commons-logging-1.1.jar, freemarker-2.3.8.jar jstl.jar, ognl-2.6.11.jar, struts2-core-2.0.6.jar, xwork-2.0.1.jar
SidCool
A: 

Typical struts-2 poor error logging. You'd think they'd spend extra time checking nulls and giving a meaningful error msg? Nope. Welcome to opensource. Struts2 is pretty frustrating when it comes to getting it installed and working. Anyhow, take out the spring-plugin if you're not going to configure it.

Johhny
Thanks Johhny, it worked after I removed the spring plugin config.
SidCool