Gent.mi amici,
ho un problema riguardante un'applicazione web che utilizza le servlet. Ho una classe ActionServlet, della quale viene richiamato il metodo doAction in essa contenuta per effettuare varie operazioni, tramite delle chiamate GET o POST. Riporto il codice della classe:
package com.stelnet.stelfair.servlets;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.logging.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ActionServlet extends HttpServlet {
protected ResourceBundle actionsFile = ResourceBundle.getBundle("com.stelnet.stelfair.act ions.actions");
protected Logger logger = Logger.getLogger("stelfair");
protected ResourceBundle settings = ResourceBundle.getBundle("stelfair");
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doAction(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doAction(request, response);
}
protected void doAction(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.resetBuffer();
String nextPage = request.getParameter("_next_page_");
String actionName = null;
actionName = request.getParameter("_action_");
String actionClass = actionsFile.getString(actionName);
WebAction webAction = null;
try {
webAction = (WebAction) Class.forName(actionClass).newInstance();
} catch (Exception e) {
logger.log(Level.WARNING, e.getMessage(), e);
response.sendError(HttpServletResponse.SC_NOT_FOUN D);
}
StringBuilder url = new StringBuilder(nextPage != null ? nextPage : request.getHeader("Referer"));
try {
webAction.setServletContext(getServletContext());
webAction.run(request, response);
for (String param : webAction.params.keySet()) {
url.append(url.indexOf("?") >= 0 ? "&" : "?");
url.append(URLEncoder.encode(param, "UTF-8"));
url.append("=");
url.append(webAction.params.get(param));
}
} catch (Exception e) {
logger.log(Level.WARNING, e.getMessage(), e);
url = new StringBuilder(request.getHeader("Referer"));
url.append(url.indexOf("?") >= 0 ? "&" : "?");
url.append("error=" + e.getMessage());
}
response.sendRedirect(url.toString());
}
Il problema è, che, quando richiamo con una url del tipo: /member/action.do?_action_=delete_lead&lead=116b0aefb2e ottengo una pagina di errore con un messaggio del tipo: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key delete_lead
java.util.ResourceBundle.getObject(ResourceBundle. java:386)
java.util.ResourceBundle.getString(ResourceBundle. java:346)
com.stelnet.stelfair.servlets.ActionServlet.doActi on(ActionServlet.java:45)
com.stelnet.stelfair.servlets.ActionServlet.doGet( ActionServlet.java:26)
javax.servlet.http.HttpServlet.service(HttpServlet .java:689)
.......
Eppure nel file actions.properties, la chiave delete_lead, è contenuta, inoltre, utilizzando altre chiavi, il tutto funziona correttamente.... Mi potete aiutare?

Rispondi quotando