Yep, I've posted this before, but still can't find the problem. I've dug into the struts code and don't know what's going on here. I'm using Orion 1.4.8 w/ linux 2.2.16. I've got some new info, if I remove my resource file, it's still being found. This after I've just done a fresh install of the server and inside a new account and there are no other resource files in my classpath or on the machine.
 
Can anyone point me to the location where struts is find the resource file, i.e. the path it's using?
 
500 Internal Server
Error javax.servlet.jsp.JspException: Missing message for key main.title at
org.apache.struts.taglib.bean.MessageTag.doStartTag(MessageTag.java,
Compiled Code) at /index.jsp._jspService(/index.jsp.java, Compiled Code) at ...
 
According to the above error and this snippit of code taken from the 4-20 tar.gz source, the properties file that my web-app is looking for *is being found* and all seems to be setup/configured correctly, otherwise the error would be about messageTag.resources (not finding the property file). So for some reason, the key can't be gotten from the file. I've also included my properties (cais.properties) file below with this key included in it.
 
The only thing else I think that can be wrong is the value of the args array just before the Exception is thrown and I was wondering if anyone could tell me what those might be.
 
The line with 'String message = resources.getMessage(locale, key, args);' must be returning null and so this is giving me the above error, but I'm not sure what's being stuffed into it or where it comes from.
 
Any help much appreciated.
 
----- MessageTag.java ------------------------------------------------
 
  public int doStartTag() throws JspException {
 
   // Acquire the resources object containing our messages
   MessageResources resources = (MessageResources)
       pageContext.getAttribute(bundle, PageContext.APPLICATION_SCOPE);
   if (resources == null)
       throw new JspException
      (messages.getMessage("messageTag.resources", bundle));
 
   // Calculate the Locale we will be using
   Locale locale = null;
   try {
       locale = (Locale)
      pageContext.getAttribute(localeKey, PageContext.SESSION_SCOPE);
   } catch (IllegalStateException e) { // Invalidated session
       locale = null;
   }
   if (locale == null)
       locale = defaultLocale;
 
   // Construct the optional arguments array we will be using
   Object args[] = new Object[5];
   args[0] = arg0;
   args[1] = arg1;
   args[2] = arg2;
   args[3] = arg3;
   args[4] = arg4;
 
   // Retrieve the message string we are looking for
   String message = resources.getMessage(locale, key, args);
   if (message == null)
       throw new JspException
      (messages.getMessage("messageTag.message", key));
 
 
------ ~WEB-INF/web.xml ------------------------  
<servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      <init-param>
         <param-name>application</param-name>
         <param-value>cais</param-value>
      </init-param>
   ...
------ ~/index.jsp ------------------------
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<html:html>
<head>
<title>
   <bean:message key="main.title" />
</title>
------ ~WEB-INF/classes/cais.properties ------------------------
# C.A.I.S. Resource Bundle
main.title=CAIS
main.master=Master View
main.detail=Detailed View

Reply via email to