I think I have made all kinds of mistakes in the
Struts history.
I was working on VALIDATION. However, when I leave
all text fields blank and submit the form for testing,
I got HTTP Status 500 -
java.lang.IllegalArgumentException: Path
.frame.content does not start with a "/" character
I think the problem is in my struts-config.xml file.
I do not see that I put a "/" in front of any tile
expressions; in particular, .frame.content
(My struts-config.xml can be found in the attachment)
The Tomcat logs file can also be found in the
attachment.
In the browser window, I got:
java.lang.IllegalArgumentException: Path
.frame.content does not start with a "/" character
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1012)
org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:345)
org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:980)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:255)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
_______________________________
Do you Yahoo!?
Express yourself with Y! Messenger! Free. Download now.
http://messenger.yahoo.com
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!-- ==================================== Data Source Configuration -->
<!--
<data-sources>
<data-source>
<set-property property="maxCount"
value="4"/>
<set-property property="minCount"
value="2"/>
<set-property property="description"
value="Artimus:MySQL Data Source Configuration"/>
<set-property property="driverClass"
value="com.mysql.jdbc.Driver"/>
<set-property property="url"
value="jdbc:mysql://localhost:3306/artimus"/>
<set-property property="autoCommit"
value="true"/>
<set-property property="user"
value="javauser"/>
<set-property property="password"
value="javadude"/>
</data-source>
</data-sources>
-->
<!-- ======================================== Form Bean Definitions -->
<form-beans>
<!-- Menu Form Bean -->
<form-bean
name="messageForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property
name="msgtype"
type="java.lang.String"/>
<form-property
name="sender"
type="java.lang.String"/>
<form-property
name="receiver"
type="java.lang.String"/>
<form-property
name="messageTopic"
type="java.lang.String"/>
<form-property
name="priority"
type="java.lang.String"/>
<form-property
name="distribution"
type="java.lang.String"/>
<form-property
name="messageBody"
type="java.lang.String"/>
</form-bean>
<form-bean
name="editTitleForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property
name="document"
type="java.lang.String"/>
<form-property
name="title"
type="java.lang.String"/>
</form-bean>
<form-bean
name="editPageForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property
name="document"
type="java.lang.String"/>
<form-property
name="title"
type="java.lang.String"/>
<form-property
name="body"
type="java.lang.String"/>
</form-bean>
<form-bean
name="addLinkForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property
name="document"
type="java.lang.String"/>
<form-property
name="linkname"
type="java.lang.String"/>
<form-property
name="linklocation"
type="java.lang.String"/>
</form-bean>
<form-bean
name="addFileForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property
name="document"
type="java.lang.String"/>
<form-property
name="linkname"
type="java.lang.String"/>
<form-property
name="filename"
type="java.lang.String"/>
</form-bean>
</form-beans>
<!-- =================================== Global Forward Definitions -->
<global-forwards>
<forward
name="welcome"
path="/do/Home"/>
<forward
name="cancel"
path="/do/Home"
redirect="true"/>
<forward
name="done"
path="/do/Home"/>
<forward
name="exit"
redirect="true"
path="http://jakarta.apache.org/"/>
<forward
name="failure"
path="/do/Home"/>
<forward
name="logon"
path="/do/admin/Menu"/>
</global-forwards>
<!-- =================================== Action Mapping Definitions -->
<action-mappings>
<action
path="/Home"
parameter=".frame.Home"
type="org.apache.struts.actions.ForwardAction"/>
<action
path="/admin/Menu"
forward="/do/Menu"/>
<action
path="/Register"
parameter=".frame.Enrollment"
type="org.apache.struts.actions.ForwardAction"/>
<action
path="/ContentMgmt"
type="org.dhsinfo.content.SelectPage">
<forward
name="success"
path=".frame.Content"/>
</action>
<action
path="/content/UpdateTitle"
type="org.dhsinfo.content.doSomething1"
name="editTitleForm"
scope="request"
validate="true"
input=".frame.content">
<forward
name="success"
path=".title.Confirmation"/>
</action>
<action
path="/content/UpdatePage"
type="org.dhsinfo.content.doSomething2"
name="editPageForm"
scope="request"
validate="true"
input=".frame.Content">
<forward
name="success"
path=".document.Confirmation"/>
</action>
<action
path="/content/AddLinks"
type="org.dhsinfo.content.doSomething3"
name="addLinkForm"
scope="request"
validate="true"
input=".frame.content">
<forward
name="success"
path=".link.Confirmation"/>
</action>
<action
path="/content/AddFiles"
type="org.dhsinfo.content.doSomething4"
name="addFileForm"
scope="request"
validate="true"
input=".frame.content">
<forward
name="success"
path=".file.Confirmation"/>
</action>
<action
path="/MailMessage"
parameter=".message.Form"
name="messageForm"
type="org.apache.struts.actions.ForwardAction"/>
<action
path="/message/SendMessage"
type="org.dhsinfo.message.SendMessage"
name="messageForm"
scope="request"
validate="false"
input=".message.Form">
<forward
name="success"
path=".message.Confirmation"/>
</action>
</action-mappings>
<message-resources
parameter="resources.application"/>
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config"
value="/WEB-INF/tiles-defs.xml"/>
<set-property property="definitions-debug" value="1" />
<set-property property="definitions-parser-details" value="0" />
<set-property property="definitions-parser-validate" value="true" />
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
2004-09-22 17:42:59
StandardContext[/balancer]org.apache.webapp.balancer.BalancerFilter: init():
ruleChain: [org.apache.webapp.balancer.RuleChain:
[org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect
URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule:
Target param name: paramName / Target param value: paramValue / Redirect URL:
http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule:
Redirect URL: http://jakarta.apache.org]]
2004-09-22 17:43:00 StandardContext[/artimus_1_0_b4]action: Loading application
resources from resource resources.application
2004-09-22 17:43:00 StandardContext[/artimus_1_0_b4]action: Initializing configuration
from resource path /WEB-INF/struts-config.xml
2004-09-22 17:43:00 StandardContext[/artimus_1_0_b4]action: Initializing application
data source org.apache.struts.action.DATA_SOURCE
2004-09-22 17:43:00 StandardContext[/artimus_1_0_b4]action: Exception initializing
application data source org.apache.struts.action.DATA_SOURCE
java.sql.SQLException: open: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at org.apache.struts.util.GenericDataSource.open(GenericDataSource.java:662)
at
org.apache.struts.action.ActionServlet.initDataSources(ActionServlet.java:1078)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
at
org.apache.struts.tiles.ActionComponentServlet.init(ActionComponentServlet.java:52)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:617)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:431)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:968)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
2004-09-22 17:43:00 StandardContext[/artimus_1_0_b4]Servlet /artimus_1_0_b4 threw
load() exception
javax.servlet.ServletException: Exception initializing application data source
org.apache.struts.action.DATA_SOURCE
at
org.apache.struts.action.ActionServlet.initDataSources(ActionServlet.java:1081)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
at
org.apache.struts.tiles.ActionComponentServlet.init(ActionComponentServlet.java:52)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:617)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:431)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:968)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
----- Root Cause -----
java.sql.SQLException: open: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at org.apache.struts.util.GenericDataSource.open(GenericDataSource.java:662)
at
org.apache.struts.action.ActionServlet.initDataSources(ActionServlet.java:1078)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
at
org.apache.struts.tiles.ActionComponentServlet.init(ActionComponentServlet.java:52)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:617)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:431)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:968)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
2004-09-22 17:43:00 StandardContext[/artimus_1_0_b4]validator: Loading validation file
from '/WEB-INF/validation.xml'
2004-09-22 17:43:00 StandardContext[/logon]action: Loading application resources from
resource resources.application
2004-09-22 17:43:00 StandardContext[/logon]action: Initializing configuration from
resource path /WEB-INF/struts-config.xml
2004-09-22 17:43:01 StandardContext[/logon]action: Process servletName=action,
urlPattern=*.do
2004-09-22 17:43:01 StandardContext[/logon]action: Mapping for servlet 'action' =
'*.do'
2004-09-22 17:43:02 StandardContext[/jsp-examples]ContextListener: contextInitialized()
2004-09-22 17:43:02 StandardContext[/jsp-examples]SessionListener: contextInitialized()
2004-09-22 17:43:03 StandardContext[/servlets-examples]ContextListener:
contextInitialized()
2004-09-22 17:43:03 StandardContext[/servlets-examples]SessionListener:
contextInitialized()
2004-09-22 17:43:22 StandardWrapperValve[action]: Servlet.service() for servlet action
threw exception
java.lang.IllegalArgumentException: Path .frame.content does not start with a "/"
character
at
org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:378)
at
org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(ApplicationContextFacade.java:196)
at
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
at
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
at
org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1012)
at
org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:345)
at
org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:980)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:255)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]