El mié, 17 de 05 de 2006 a las 17:19, David G. Friedman escribió: > Jorge, > > 1. I believe Struts PlugIns were initially created because, at the time, the > servlet spec didn't have ServletContextListeners. So, why are you mixing the > two instead of just using a ServletContextListener?
i didn't know that. At the beginning, my app was coded without struts using a servlerContextListener. Then when i decided the migration to struts i supose the PlugIn was the best choice. > > 2. Did you define the PlugIn in your struts-config.xml (or similar file that > you are sure is loading? of course. [...] <plug-in className="com.defactops.smartcvweb.struts.plugin.StartupPlugin"> <set-property property="serviceClass" value="com.defactops.smartcvweb.service.SmartcvwebServiceImpl"/> </plug-in> [...] > > 3. Have you done a simple logging in your PlugIn to ensure the plugIn is > loaded? i have used a property of the ApplicationContainer, the ServiceFactory. Works perfect. public class BaseAction extends Action { [...] /** * Obtiene el contenedor de aplicacion * @return */ protected ApplicationContainer getApplicationContainer() { return (ApplicationContainer)servlet.getServletContext().getAttribute( IConstants.APPLICATION_CONTAINER_KEY); } /** * Obtiene el servicio * * @return * @throws SmartcvwebServiceException */ protected ISmartcvwebService getSmartcvwebService() throws SmartcvwebServiceException { ISmartcvwebService service = null; try { service = getApplicationContainer().getServiceFactory().createService(); } catch (Exception e) { throw new SmartcvwebServiceException(e); } return service; } [...] > 4. Have you done a simple logging in your JSP to ensure that the main object, > __APPLICATION_CONTAINER_KEY can be found? I have test it and the jsp resturns 27 <%=((com.defactops.smartcvweb.struts.util.ApplicationContainer)application.getAttribute("__APPLICATION_CONTAINER_KEY")).getArea().size()%> > > 5. Have you tried to find the object saved under the key > "__APPLICATION_CONTAINER_KEY" inside an action to be sure you can reach it > normallly? look at answer 3 > > 6. Are you using Action 1 or Action to and what specific version? i use "classic" struts 1.2.9 with action 1 > David, thank you for response > Regards, > David > > -----Original Message----- > From: Jorge Martín Cuervo [mailto:[EMAIL PROTECTED] > Sent: Wednesday, May 17, 2006 5:05 AM > To: Struts Users Mailing List > Subject: Re: Cannot find bean under name > __APPLICATION_CONTAINER_KEY.area > > > anyone have used a container to store application scope data? > > please, let me know if it's a bad practice. > > El mar, 16 de 05 de 2006 a las 17:15, Jorge Martín Cuervo escribió: > > > Hi all, > > > > <h2><fmt:message key="search2.filter.job.title"/></h2> > > <p class="pEstrecho"> > > <span><fmt:message key="search2.filter.job.sector"/></span> > > <html:select property="industryCode" styleClass="selectAncho"> > > <html:options collection="industryCodeMap" > > property="key" labelProperty="value"/> > > </html:select> > > </p> > > > > I use html:select with html:options to populate the options from the > > application scope. > > In the application scope i have a attribute called "industryCodeMap" > > with a Map that contains the data. > > I used a ServletContextListener to load the data on the webapp startup > > and goes fine. > > > > Now i want to change the startup process with struts plugin, and also > > works good with the service. > > > > [...] > > public void init(ActionServlet servlet, ModuleConfig config) throws > > ServletException { > > > > serviceClassName = findServiceClassName(config); > > > > ItemDAO itemDAO = DAOFactory.getDAOFactory().getItemDAO(); > > > > ApplicationContainer container = new ApplicationContainer(); > > > > container.setSector(itemDAO.getItems(IConstants.SECTOR_BLOCK_NAME)); > > container.setArea(itemDAO.getItems(IConstants.AREA_BLOCK_NAME)); > > > > container.setCoutries(itemDAO.getItems(IConstants.COUNTRIES_BLOCK_NAME)); > > > > container.setServiceFactory(this); > > > > servlet.getServletContext().setAttribute( > > IConstants.APPLICATION_CONTAINER_KEY, container); > > } > > [...] > > public interface IConstants { > > > > String APPLICATION_CONTAINER_KEY = "__APPLICATION_CONTAINER_KEY"; > > > > [...] > > > > > > I prefer to user a container bean to keep my data, and now i try to > > change the html:options to: > > > > <html:options collection="__APPLICATION_CONTAINER_KEY.area" > > property="key" labelProperty="value"/> > > and crash with: > > > > > > javax.servlet.jsp.JspException: Cannot find bean under name > > __APPLICATION_CONTAINER_KEY.area > > > > > > the questionm is, how can i access to the container and then the > > property area? -- ;-) ____________________________________ Jorge Martin Cuervo Analista Programador Outsourcing Emarketplace deFacto Powered by Standards email <[EMAIL PROTECTED]> voz +34 985 129 820 voz +34 660 026 384 ____________________________________