You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by eve <nu...@email.it> on 2005/11/10 19:40:42 UTC

"Can't get definitions factory from context"

I have tiles working in my application. As i try to use the validator 
i get the following error
which may it be the cause?






javax.servlet.ServletException: Can't get definitions factory from context.
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
	org.apache.jsp.pages.Login_jsp._jspService(org.apache.jsp.pages.Login_jsp:75)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause
javax.servlet.jsp.JspException: Can't get definitions factory from context.
	org.apache.struts.taglib.tiles.InsertTag.processDefinitionName(InsertTag.java:577)
	org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:476)
	org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:438)
	org.apache.jsp.pages.Login_jsp._jspx_meth_tiles_insert_0(org.apache.jsp.pages.Login_jsp:91)
	org.apache.jsp.pages.Login_jsp._jspService(org.apache.jsp.pages.Login_jsp:68)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Re: "Can't get definitions factory from context"

Posted by Laurie Harper <la...@holoweb.net>.
Hmm, I'm not sure how just adding validation rules for the form prevents 
the JSP from rendering, since you don't have client-side validation enabled.

Are you sure there are no other errors generated, either when you 
request your login.jsp or during server startup? Do you have any 
validation-related configuration on the action mapping that loads login.jsp?

I would suggest turning on full debug logging and seeing if that gives 
you a clue as to why it's failing.

L.

eve wrote:
> Everything works if I don't configure the validation.
> I just added this in my validation.xml:
> 
>  <formset>
>         <form name="loginForm">
>             <field
>                 property="username"
>                 depends="required">
>                     <arg key="label.username"/>
>             </field>
>             <field
>                 property="password"
>                 depends="required,mask">
>                     <arg key="label.password"/>
>                     <var>
>                         <var-name>mask</var-name>
>                         <var-value>^[0-9a-zA-Z]*$</var-value>
>                     </var>
>             </field>
>         </form>
>     </formset>
> 
> this is in my struts-config.xml:
>    <action
>             path="/LoginSubmit"
>             type="it.unifi.tesi.struts.prova.ProvaAction"
>             name="loginForm"
>             scope="request"
>             validate="true"
>             input="/pages/Login.jsp">
>        <exception
>         key="login.failed"
>         path="/pages/Login.jsp"
>         type="it.unifi.tesi.struts.prova.InvalidLoginException"/>
>     <exception
>         path="/pages/SystemError.jsp"
>         type="it.unifi.tesi.struts.prova.SystemException"/>
>     <forward path="/pages/Welcome.jsp" name="registered"/>
>     <forward path="/pages/Error.jsp" name="error"/>
>     </action>
> 
> and this is my form:
> <html:form action='LoginSubmit'>
>     <table cols='2' border='0'>
>         <tbody>
>     <tr>
>     <td><bean:message key="label.username"/></td>
>     <td><html:text property='username'/></td>
>     </tr>
>     <tr>
>     <td><bean:message key="label.password"/></td>
>     <td><html:password property='password'/></td>
>     </tr>
>     <tr>
>     <td colspan='2' align='center'>
>     <html:submit><bean:message key="button.submit"/></html:submit>
>     <html:reset><bean:message key="button.reset"/></html:reset>
>      </td>
>     </tr>
>     </tbody>
>     </table>
>     <jsp:useBean id="user_data" scope="session" 
> class="it.unifi.tesi.struts.prova.User" />
> 
> </html:form>
> 
> thanks
> eve
> 
>> That appears to be a Tiles error, not a validator error; does it work 
>> if you don't configure any validation? If so, what validator 
>> configuration do you add that leads to the error below?
>>
>> L.
>>
>> eve wrote:
>>
>>> I have tiles working in my application. As i try to use the validator 
>>> i get the following error
>>> which may it be the cause?
>>>
>>>
>>>
>>>
>>>
>>>
>>> javax.servlet.ServletException: Can't get definitions factory from 
>>> context.
>>>
>>> org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848) 
>>>
>>>
>>> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781) 
>>>
>>>
>>> org.apache.jsp.pages.Login_jsp._jspService(org.apache.jsp.pages.Login_jsp:75) 
>>>
>>>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>
>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) 
>>>
>>>     
>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>>>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>
>>> root cause
>>> javax.servlet.jsp.JspException: Can't get definitions factory from 
>>> context.
>>>
>>> org.apache.struts.taglib.tiles.InsertTag.processDefinitionName(InsertTag.java:577) 
>>>
>>>
>>> org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:476) 
>>>
>>>     
>>> org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:438)
>>>
>>> org.apache.jsp.pages.Login_jsp._jspx_meth_tiles_insert_0(org.apache.jsp.pages.Login_jsp:91) 
>>>
>>>
>>> org.apache.jsp.pages.Login_jsp._jspService(org.apache.jsp.pages.Login_jsp:68) 
>>>
>>>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>
>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) 
>>>
>>>     
>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>>>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: "Can't get definitions factory from context"

Posted by eve <nu...@email.it>.
Everything works if I don't configure the validation.
I just added this in my validation.xml:

  <formset>
         <form name="loginForm">
             <field
                 property="username"
                 depends="required">
                     <arg key="label.username"/>
             </field>
             <field
                 property="password"
                 depends="required,mask">
                     <arg key="label.password"/>
                     <var>
                         <var-name>mask</var-name>
                         <var-value>^[0-9a-zA-Z]*$</var-value>
                     </var>
             </field>
         </form>
     </formset>

this is in my struts-config.xml:
    <action
             path="/LoginSubmit"
             type="it.unifi.tesi.struts.prova.ProvaAction"
             name="loginForm"
             scope="request"
             validate="true"
             input="/pages/Login.jsp">
        <exception
		key="login.failed"
		path="/pages/Login.jsp"
		type="it.unifi.tesi.struts.prova.InvalidLoginException"/>
	<exception
		path="/pages/SystemError.jsp"
		type="it.unifi.tesi.struts.prova.SystemException"/>
	<forward path="/pages/Welcome.jsp" name="registered"/>
	<forward path="/pages/Error.jsp" name="error"/>
	</action>

and this is my form:
<html:form action='LoginSubmit'>
	<table cols='2' border='0'>
		<tbody>
	<tr>
	<td><bean:message key="label.username"/></td>
	<td><html:text property='username'/></td>
	</tr>
	<tr>
	<td><bean:message key="label.password"/></td>
	<td><html:password property='password'/></td>
	</tr>
	<tr>
	<td colspan='2' align='center'>
	<html:submit><bean:message key="button.submit"/></html:submit>
	<html:reset><bean:message key="button.reset"/></html:reset>
	 </td>
	</tr>
	</tbody>
	</table>
	<jsp:useBean id="user_data" scope="session" 
class="it.unifi.tesi.struts.prova.User" />

</html:form>

thanks
eve

>That appears to be a Tiles error, not a validator error; does it 
>work if you don't configure any validation? If so, what validator 
>configuration do you add that leads to the error below?
>
>L.
>
>eve wrote:
>>I have tiles working in my application. As i try to use the 
>>validator i get the following error
>>which may it be the cause?
>>
>>
>>
>>
>>
>>
>>javax.servlet.ServletException: Can't get definitions factory from context.
>> 
>>org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
>> 
>>org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
>> 
>>org.apache.jsp.pages.Login_jsp._jspService(org.apache.jsp.pages.Login_jsp:75)
>>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>> 
>>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
>>     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>
>>root cause
>>javax.servlet.jsp.JspException: Can't get definitions factory from context.
>> 
>>org.apache.struts.taglib.tiles.InsertTag.processDefinitionName(InsertTag.java:577)
>> 
>>org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:476)
>>     org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:438)
>> 
>>org.apache.jsp.pages.Login_jsp._jspx_meth_tiles_insert_0(org.apache.jsp.pages.Login_jsp:91)
>> 
>>org.apache.jsp.pages.Login_jsp._jspService(org.apache.jsp.pages.Login_jsp:68)
>>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>> 
>>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
>>     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>For additional commands, e-mail: user-help@struts.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: "Can't get definitions factory from context"

Posted by Laurie Harper <la...@holoweb.net>.
That appears to be a Tiles error, not a validator error; does it work if 
you don't configure any validation? If so, what validator configuration 
do you add that leads to the error below?

L.

eve wrote:
> I have tiles working in my application. As i try to use the validator i 
> get the following error
> which may it be the cause?
> 
> 
> 
> 
> 
> 
> javax.servlet.ServletException: Can't get definitions factory from context.
>     org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848) 
> 
>     org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781) 
> 
>     org.apache.jsp.pages.Login_jsp._jspService(org.apache.jsp.pages.Login_jsp:75) 
> 
>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) 
> 
>     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) 
> 
>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 
> root cause
> javax.servlet.jsp.JspException: Can't get definitions factory from context.
>     org.apache.struts.taglib.tiles.InsertTag.processDefinitionName(InsertTag.java:577) 
> 
>     org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:476) 
> 
>     org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:438)
>     org.apache.jsp.pages.Login_jsp._jspx_meth_tiles_insert_0(org.apache.jsp.pages.Login_jsp:91) 
> 
>     org.apache.jsp.pages.Login_jsp._jspService(org.apache.jsp.pages.Login_jsp:68) 
> 
>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) 
> 
>     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) 
> 
>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: "Can't get definitions factory from context"

Posted by Deepa Khetan <de...@gmail.com>.
While adding the validator configuration to your struts-config, u must be
missing some tag. check for it

On 11/11/05, eve <nu...@email.it> wrote:
>
> I have tiles working in my application. As i try to use the validator
> i get the following error
> which may it be the cause?
>
>
>
>
>
>
> javax.servlet.ServletException: Can't get definitions factory from
> context.
> org.apache.jasper.runtime.PageContextImpl.doHandlePageException(
> PageContextImpl.java:848)
> org.apache.jasper.runtime.PageContextImpl.handlePageException(
> PageContextImpl.java:781)
> org.apache.jsp.pages.Login_jsp._jspService(
> org.apache.jsp.pages.Login_jsp:75)
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java
> :322)
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
> root cause
> javax.servlet.jsp.JspException: Can't get definitions factory from
> context.
> org.apache.struts.taglib.tiles.InsertTag.processDefinitionName(
> InsertTag.java:577)
> org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java
> :476)
> org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:438)
> org.apache.jsp.pages.Login_jsp._jspx_meth_tiles_insert_0(
> org.apache.jsp.pages.Login_jsp:91)
> org.apache.jsp.pages.Login_jsp._jspService(
> org.apache.jsp.pages.Login_jsp:68)
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java
> :322)
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>