Mikael
Really it depends on ServletContext.LoadResourceAsStream("name") function
behaviour. If I understand right for Websphere it works relative to the
application web root. Try to check if full path of the struts-config.xml is
<web-root>/WEB-INF/struts-config.xml.
I also add classpath variable equal to the web root (for cases when it's
used as base for the system classloader).
I also add classpaths for application classes for classes loaded by Struts
into "Environment..." section (with env var name "CLASSPATH") of the server
to ensure if it is in the Java VM classpath.
Andrei Mamitchev
[EMAIL PROTECTED]
ICQ#: 89581227
Hello!
I try a simple project with STRUTS:
I have a first page with a link:
<form:link href="saveEnterpriseRegistration.do?action=Create">
<bean:message key="index.enterprise.registration"/></form:link>
When I click on this link, I get the following message:
Error 500
Une erreur s'est produite lors du traitement de la demande :
http://localhost/login2/saveEnterpriseRegistration.do
Message : Failed to load target servlet [action]
Servlet cible : action
Tra�age de pile :
--------------------------------------------------------------------------------
Erreur root -1: Missing configuration resource for path
/WEB-INF/struts-config.xml
It seems that there's a problem when Websphere loads the application. I
have the following messages:
SRVE0091I: [Servlet LOG]: "action: Initializing configuration from resource
path /WEB-INF/struts-config.xml"
SRVE0100E: Uncaught init() exception thrown by servlet "action":
javax.servlet.UnavailableException: Missing configuration resource for path
/WEB-INF/struts-config.xml
at javax.servlet.ServletException.<init>(ServletException.java:107)
at javax.servlet.UnavailableException.<init>(UnavailableException.java:159)
at
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1052)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:393)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at
com.ibm.servlet.engine.webapp.StrictServletInstance.doInit(ServletManager.java:604)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.
_init(StrictLifecycleServlet.java:136)
at
com.ibm.servlet.engine.webapp.PreInitializedServletState.init(StrictLifecycleServlet.java:244)
at
com.ibm.servlet.engine.webapp.StrictLifecycleServlet.init(StrictLifecycleServlet.java:102)
at
com.ibm.servlet.engine.webapp.ServletInstance.init(ServletManager.java:284)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at
com.ibm.servlet.engine.webapp.ServletManager.addServlet(ServletManager.java:76)
at
com.ibm.servlet.engine.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:91)
at
com.ibm.servlet.engine.webapp.WebAppServletManager.getServletReference(WebAppServletManager.java:135)
at
com.ibm.servlet.engine.webapp.WebApp.getServletReference(WebApp.java:293)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcherInfo.calculateInfo(WebAppRequestDispatcherInfo.java:151)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcherInfo.<init>(WebAppRequestDispatcherInfo.java:50)
at
com.ibm.servlet.engine.webapp.WebApp.getRequestDispatcher(WebApp.java:962)
at
com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:73)
at
com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
at
com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:155)
at
com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:300)
at
com.ibm.servlet.engine.oselistener.SQEventListenerImp$ServiceRunnable.run(SQEventListenerImp.java:230)
at
com.ibm.servlet.engine.oselistener.SQEventListenerImp.notifySQEvent(SQEventListenerImp.java:104)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQEventSource.notifyEvent(SQEventSource.java:212)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.notifyService(SQWrapperEventSource.java:353)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.run(SQWrapperEventSource.java:220)
at
com.ibm.servlet.engine.oselistener.outofproc.OutOfProcThread$CtlRunnable.run(OutOfProcThread.java:248)
at java.lang.Thread.run(Thread.java:481)
SRVE0020E: [Servlet Error]-["action"]: "Le chargement du servlet a �chou�":
javax.servlet.UnavailableException: Missing configuration resource for path
/WEB-INF/struts-config.xml
at javax.servlet.ServletException.<init>(ServletException.java:107)
at javax.servlet.UnavailableException.<init>(UnavailableException.java:159)
at
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1052)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:393)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at
com.ibm.servlet.engine.webapp.StrictServletInstance.doInit(ServletManager.java:604)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.
_init(StrictLifecycleServlet.java:136)
at
com.ibm.servlet.engine.webapp.PreInitializedServletState.init(StrictLifecycleServlet.java:244)
at
com.ibm.servlet.engine.webapp.StrictLifecycleServlet.init(StrictLifecycleServlet.java:102)
at
com.ibm.servlet.engine.webapp.ServletInstance.init(ServletManager.java:284)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at
com.ibm.servlet.engine.webapp.ServletManager.addServlet(ServletManager.java:76)
at
com.ibm.servlet.engine.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:91)
at
com.ibm.servlet.engine.webapp.WebAppServletManager.getServletReference(WebAppServletManager.java:135)
at
com.ibm.servlet.engine.webapp.WebApp.getServletReference(WebApp.java:293)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcherInfo.calculateInfo(WebAppRequestDispatcherInfo.java:151)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcherInfo.<init>(WebAppRequestDispatcherInfo.java:50)
at
com.ibm.servlet.engine.webapp.WebApp.getRequestDispatcher(WebApp.java:962)
at
com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:73)
at
com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
at
com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:155)
at
com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:300)
at
com.ibm.servlet.engine.oselistener.SQEventListenerImp$ServiceRunnable.run(SQEventListenerImp.java:230)
at
com.ibm.servlet.engine.oselistener.SQEventListenerImp.notifySQEvent(SQEventListenerImp.java:104)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQEventSource.notifyEvent(SQEventSource.java:212)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.notifyService(SQWrapperEventSource.java:353)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.run(SQWrapperEventSource.java:220)
at
com.ibm.servlet.engine.oselistener.outofproc.OutOfProcThread$CtlRunnable.run(OutOfProcThread.java:248)
at java.lang.Thread.run(Thread.java:481)
SRVE0020E: [Servlet Error]-["action"]: "Failed to load target servlet
[action]":
com.ibm.servlet.engine.webapp.LoadTargetServletFailure: Failed to load
target servlet [action]
at javax.servlet.ServletException.<init>(ServletException.java:132)
at
com.ibm.websphere.servlet.error.ServletErrorReport.<init>(ServletErrorReport.java:43)
at
com.ibm.servlet.engine.webapp.WebAppErrorReport.<init>(WebAppErrorReport.java:31)
at
com.ibm.servlet.engine.webapp.LoadTargetServletFailure.<init>(LoadTargetServletFailure.java:11)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcherInfo.calculateInfo(WebAppRequestDispatcherInfo.java:209)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcherInfo.<init>(WebAppRequestDispatcherInfo.java:50)
at
com.ibm.servlet.engine.webapp.WebApp.getRequestDispatcher(WebApp.java:962)
at
com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:73)
at
com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
at
com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:155)
at
com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:300)
at
com.ibm.servlet.engine.oselistener.SQEventListenerImp$ServiceRunnable.run(SQEventListenerImp.java:230)
at
com.ibm.servlet.engine.oselistener.SQEventListenerImp.notifySQEvent(SQEventListenerImp.java:104)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQEventSource.notifyEvent(SQEventSource.java:212)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.notifyService(SQWrapperEventSource.java:353)
at
com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.run(SQWrapperEventSource.java:220)
at
com.ibm.servlet.engine.oselistener.outofproc.OutOfProcThread$CtlRunnable.run(OutOfProcThread.java:248)
at java.lang.Thread.run(Thread.java:481)
Thanks for your help!
MIKAEL