HI everyone. I was hoping to find somebody that had solved this problem.
I am deploying a CRUD application in Godaddy. I have the shared Linux hosting plan with
Java enabled. Godaddy Details: JDK 1.5 -
Tomcat 5.0.27
I am using
Struts 1.3.8 and Tiles.
The War file is exploded and when I try to access the application: I get the following:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Module 'null' not found.
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:239)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:266)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:157)
root cause
java.lang.NullPointerException: Module 'null' not found.
org.apache.struts.taglib.TagUtils.getModuleConfig(TagUtils.java:755)
org.apache.struts.taglib.TagUtils.computeURLWithCharEncoding(TagUtils.java:364)
org.apache.struts.taglib.TagUtils.computeURLWithCharEncoding(TagUtils.java:285)
org.apache.struts.taglib.logic.RedirectTag.generateRedirectURL(RedirectTag.java:289)
org.apache.struts.taglib.logic.RedirectTag.doEndTag(RedirectTag.java:268)
org.apache.jsp.index_jsp._jspx_meth_logic_redirect_0(index_jsp.java:82)
org.apache.jsp.index_jsp._jspService(index_jsp.java:54)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:239)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:266)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:157)
Unfortunately, in Godaddy you can only write to /tmp; therefore, I can not use Log4 to see a more detailed log.
For the error message it seems to be complaining about the tags but the thing is that I tested the application locally with the same variables and it works just fine.
If I try to access other part of the application the errors are very similar, about tags and MessageResource.
IN Struts 1.3.8 there is no need to define taglibs as long as you have the proper .jar included. Just in case, below is the web.xml and struts-config.xml:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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"> <display-name>
Ofertas</display-name>
<!-- Standard Action
Servlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>chainConfig</param-name>
<param-value>org/apache/struts/tiles/chain-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
struts-config.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<!-- ================================================ Form Bean Definitions -->
<form-beans>
<form-bean name="newJobOfferForm" type="com.jobs.controller.struts.form.NewJobOfferForm">
</form-bean>
<form-bean name="listOffersForm" type="com.jobs.controller.struts.form.ListOffersForm">
</form-bean>
<form-bean name="EditOfferForm" type="com.jobs.controller.struts.form.EditOfferForm">
</form-bean>
</form-beans>
<!-- ========================================= Global Exception Definitions -->
<global-exceptions>
<!-- sample exception handler
<exception
key="expired.password"
type="app.ExpiredPasswordException"
path="/changePassword.jsp"/>
end sample -->
</global-exceptions>
<!-- =========================================== Global Forward Definitions -->
<global-forwards>
<forward
name="welcome"
path="/Index.do"/>
</global-forwards>
<!-- =========================================== Action Mapping Definitions -->
<action-mappings>
<action path="/Index"
forward=".simple.index">
</action>
<action path="/newOffer"
forward=".simple.newOffer">
</action>
<action path="/newJob"
type="com.jobs.controller.struts.action.NewJobOfferAction"
name="newJobOfferForm"
scope="request"
validate="true"
input = ".simple.newOffer">
<forward name="success" path=".simple.newOfferResults"/>
<forward name="errorNewOffer" path=".simple.index"/>
</action>
<action path="/showListOffers"
type="com.jobs.controller.struts.action.ListOffersAction"
name="listOffersForm"
scope="request"
validate="false"
input = ".simple.showListOffers">
<forward name="showListOffers" path=".simple.showListOffers"/>
</action>
<action path="/listEhq"
type="com.jobs.controller.struts.action.ListOffersAction"
name="listOffersForm"
scope="request"
validate="false"
input = "/pages/OffersListEHQView.jsp">
<forward name="showListOffers" path="/pages/OffersListEHQView.jsp"/>
</action>
<action path="/delete"
type="com.jobs.controller.struts.action.DeleteOfferAction"
scope="request">
<forward name="success" path="/showListOffers.do"></forward>
<forward name="errorDelete" path=".simple.index"></forward>
</action>
<action path="/edit"
type="com.jobs.controller.struts.action.GetOfferAction"
name="EditOfferForm"
scope="request">
<forward name="ok" path=".simple.edit"/>
</action>
<action path="/view"
type="com.jobs.controller.struts.action.EhqGetOfferAction"
name="listOffersForm"
scope="request"
validate="false"
input = "/pages/OfferViewEHQ.jsp">
<forward name="showListOffers" path="/pages/OfferViewEHQ.jsp"/>
</action>
<action path="/update"
type="com.jobs.controller.struts.action.EditOfferAction"
name="EditOfferForm"
scope="request"
validate="false"
input=".simple.edit">
<forward name="success" path="/showListOffers.do"/>
<forward name="error update" path=".simple.index"/>
</action>
<action path="/changeLanguage"
type="com.jobs.controller.util.ChangeLocaleAction"
scope="request">
<forward name="success" path="/Index.do"/>
</action>
</action-mappings>
<!-- ======================================== Message Resources Definitions -->
<message-resources parameter="MessageResources" null="false"/>
<!-- =============================================== Plug Ins Configuration -->
</plug-in>
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
</plug-in>
<!-- =================================================== Validator plugin -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/org/apache/struts/validator/validator-rules.xml,
/WEB-INF/validation.xml"/>
</struts-config>
[ July 13, 2008: Message edited by: santiago esteva ]