[Java lista] Spring Struts Action getResources NullPointerException
chico at tisztanet.hu
chico at tisztanet.hu
2007. Feb. 18., V, 18:07:12 CET
Sziasztok!
> a környezet Struts + Spring. LookupDispatchActionSupport osztályt
> szeretnék használni, de az használja az Action
> getResources(HttpServletRequest request, String key) metódusát, ami
> NullPointerException-nel elszáll. Ugyanis a getServlet() null. Ha
> kipróbálom, akkor az én osztályomban hívva a getServlet() szintén
> null. Van valami sejtésem, hogy a Spring kavar be. Valami ötlet?
Konkrétan a kérdéses osztályt még nem használtam, de Spring alatt a
Struc-ot így használom (Spring 1.2.6, és a hozzá csomagolt struct.jar):
web.xml-ben:
...
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>irm-vps</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
...
A "load-on-startup" értékek fontosak! Programon belül így értem a Spring
bean konténert:
public class BaseActionForm extends ActionForm {
...
public ActionErrors validate(ActionMapping mapping, HttpServletRequest
request) {
ServletContext servletContext = getServlet().getServletContext();
WebApplicationContext wac =
WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
...
}
}
A "wac" -ból minden bean az id alapján elérhető. Nekem működik Tomcat 5.5
és Sun ONE 7 alatt is.
Üdv,
Chico
PS: Bocs a rossz tördelésért.
További információk a(z) Javalist levelezőlistáról