We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

java.lang.nullpointer exception in weblogic...

gocoool
gocoool asked
on
Medium Priority
5,813 Views
Last Modified: 2013-12-10

Hi,

 We are using weblogic as our application server and we have deployed the struts application in the development env of weblogic. The application is working fine. But when we move the same application in the production env we are getting the following error
java.lang.NullPointerException
      at org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper.getDefinition(ComponentDefinitionsFactoryWrapper.java:84)
      at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:152)
      at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:302)
      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
      at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
      at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)




So i dont have any clue y it is working in the development env and not in the production env....

Please help me out and it is quite urgent


Thanks
Comment
Watch Question

Commented:
Your missing the jar file for struts it sounds like.  Is this the first time you have used them?  If not, then this application is not referencing it in the web.xml.

Author

Commented:

The same code i am using in my development evn and it is working fine and when we move it to the production env we are getting this error

Author

Commented:
this is my web.xml file


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE web-app PUBLIC
          "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
          "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
      
    <display-name>arm</display-name>
    <description>The Carrier Access Request Management application</description>


      <filter>
            <filter-name>filterAction</filter-name>
            <display-name>filterAction</display-name>
            <filter-class> com.carrier.arm.client.web.actions.common.filterAction</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>filterAction</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      
      
      <servlet>
            <servlet-name>controller</servlet-name>
            <servlet-class>com.carrier.arm.client.web.actions.ARMStartupActionServlet</servlet-class>
            <init-param>
                  <param-name>config</param-name>
                  <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
            <init-param>
                  <param-name>validating</param-name>
                  <param-value>true</param-value>
            </init-param>
            <init-param>
                  <param-name>debug</param-name>
                  <param-value>3</param-value>
            </init-param>
            <init-param>
                  <param-name>ARMLogConfigFile</param-name>
                  <param-value>/WEB-INF/log4j.xml</param-value>
            </init-param>             
            <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
            <servlet-name>file</servlet-name>
            <servlet-class>com.carrier.arm.client.web.actions.common.FileAction</servlet-class>
      </servlet>
      <servlet>
            <servlet-name>reportFile</servlet-name>
            <servlet-class>com.carrier.arm.client.web.actions.common.ExportReportAction</servlet-class>
      </servlet>
      <servlet>
            <servlet-name>exportAdminReportAction</servlet-name>
            <servlet-class>com.carrier.arm.client.web.actions.common.ARMAdminReportExportAction</servlet-class>
      </servlet>  
      <servlet>
             <servlet-name>exportUserReportAction</servlet-name>
             <servlet-class>com.carrier.arm.client.web.actions.common.ARMUserReportExportAction</servlet-class>
      </servlet>      
      <servlet>
            <servlet-name>exportRequestToRTF</servlet-name>
            <servlet-class>com.carrier.arm.client.web.actions.common.ExportRequest</servlet-class>
      </servlet>              
      <servlet-mapping>
            <servlet-name>controller</servlet-name>
            <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
            <servlet-name>file</servlet-name>
            <url-pattern>/fileAction.do</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
            <servlet-name>reportFile</servlet-name>
            <url-pattern>/reportFileAction.do</url-pattern>
      </servlet-mapping>      
      <servlet-mapping>
            <servlet-name>exportAdminReportAction</servlet-name>
            <url-pattern>/exportAdminReportAction.do</url-pattern>
      </servlet-mapping>      
      <servlet-mapping>
            <servlet-name>exportUserReportAction</servlet-name>
            <url-pattern>/exportUserReportAction.do</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
            <servlet-name>exportRequestToRTF</servlet-name>
            <url-pattern>/exportRequestToRTFAction.do</url-pattern>
      </servlet-mapping>               
         

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

    <welcome-file-list>
        <welcome-file>/jsp/login/Login.jsp</welcome-file>
    </welcome-file-list>
   
              
    <taglib>
        <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
        <taglib-location>/WEB-INF/tlds/struts-bean.tld</taglib-location>
    </taglib>

    <taglib>
        <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
        <taglib-location>/WEB-INF/tlds/struts-html.tld</taglib-location>
    </taglib>

    <taglib>
        <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
        <taglib-location>/WEB-INF/tlds/struts-logic.tld</taglib-location>
    </taglib>

    <taglib>
        <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
        <taglib-location>/WEB-INF/tlds/struts-nested.tld</taglib-location>
    </taglib>

    <taglib>
        <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
        <taglib-location>/WEB-INF/tlds/struts-template.tld</taglib-location>
    </taglib>

    <taglib>
        <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
        <taglib-location>/WEB-INF/tlds/struts-tiles.tld</taglib-location>
    </taglib>
   
</web-app>
Check if the tld files are present or not in PROD. However, if you deploy the EAR file, it should be included already.

Another thing is that check your startWebLogic.cmd. Check whether you are referencing the same jar files or not (just in case).

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
CERTIFIED EXPERT
Top Expert 2004
Commented:
Hi,

If you are deploying the same .ear file to two environment, and only one of them is working fine. It might be something different in the server configuration. Please check.

For my guess,
1.Check whether the following jar file is in the lib of application or not ( in APP-INF/lib or WEB-INF/lib )
    - commons-beanutils.jar
    - commons-digester.jar
    - commons-collections.jar
    - commons-logging.jar
2.If no.1 doesn't help, take a look on the following link
    http://www.oracle.com/technology/oramag/oracle/04-may/o34dev_struts.html

Hope this help.
Sompol

Author

Commented:


Hi guys,

  Thanks for your replies. It has been fixed. I dont know wht is the change but when we redeployed the code it worked fine.. Hope the same problem will not arise


Thanks a log guys

Author

Commented:
Hi guys,


    Today morning we moved the same application to the cluster env and it started giving the same error. The browser error is
Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request.

I have given the error log above. Please help me out it is quite urgent for me

Thanks
 
Commented:
Looks like there is soem difference between the Server classpath of dev and production servers
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.