Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > ошибка struts


Автор: seth 13.9.2006, 00:11
не могу понять откуда берется данный меседж... smile

Код

HTTP Status 500 - 

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 
javax.servlet.ServletException: Cannot find bean: "user" in any scope
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
    org.apache.jsp.regSuccess_jsp._jspService(regSuccess_jsp.java:87)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
    org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
    org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

root cause 
javax.servlet.jsp.JspException: Cannot find bean: "user" in any scope
    org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:935)
    org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:225)
    org.apache.jsp.regSuccess_jsp._jspx_meth_bean_write_0(regSuccess_jsp.java:118)
    org.apache.jsp.regSuccess_jsp._jspService(regSuccess_jsp.java:63)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
    org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
    org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

note The full stack trace of the root cause is available in the Tomcat logs.
Apache Tomcat/5.0.16



может нельзя в разных action'ах делать одинаковые форварды???

Код

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
    <data-sources>
        <data-source type="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" key="test">
            <set-property property="username" value="root" />
            <set-property property="password" value="" />
        </data-source>
    </data-sources>
    <form-beans>        
        <form-bean name="userRegistrationForm" type="UserRegistrationForm"/>
        <form-bean name="ParamForm" type="ParamForm"/>
    </form-beans>
    <action-mappings>
        <action path="/AddressJavascriptValidation"
     type="AddressAction"
     name="AddressForm"
     scope="request"
     validate="true"
     input="/AddressJavascriptValidation.jsp">
     <forward name="success" path="/pages/success.jsp"/>
        </action>
        <action path="/UserRegistration"
            type="UserRegistrationAction"
            name="userRegistrationForm"
                attribute="user"
                input="/UserRegistration.jsp">
            <exception type="java.sql.SQLException"
            key="UserRegistration.sql.exception"
            path="/UserRegistrationException.jsp" />
        <forward name="success" path="/regSuccess.jsp"/>
        <forward name="welcome" path="/UserRegistration.jsp"/>
        </action>
        <action path="/param"
            type="ParamAction"
             name="ParamForm"
                scope="request"
                validate="true"
                attribute="parama"
                input="/param.jsp">
                <forward name="success" path="/regSuccess.jsp"/>
                <forward name="validationError" path="/validationError.jsp"/>
        </action>
        <action path="/welcome"
            input="/welcome.jsp">
        <forward name="success" path="/regSuccess.jsp"/>
        <forward name="welcome" path="/UserRegistration.jsp"/>
        </action>
    </action-mappings>
    <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
    <message-resources parameter="application"/>
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
          <set-property
            property="pathnames"
           value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
    <plug-in className="org.apache.struts.tiles.TilesPlugin">
        <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>
    </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>

Автор: tux 13.9.2006, 01:54
Одинаковые форварды делать можно. Сообщение об ошибке означает, что у тебя на странице JSP используется бин с именем "user", но Struts не может его найти ни в контексте страницы ни в атрибутах запроса и сессии. Проверь в экшне наличие кода, который создает такой атрибут. Например, так можно:
Код

request.setAttribute("user", user);

Автор: JavaCoder 13.9.2006, 12:45
Код бы хотябы привел...

Автор: seth 13.9.2006, 18:31
Цитата(JavaCoder @ 13.9.2006,  12:45)
Код бы хотябы привел...

Спасибо - уже разобрался - там была ссылка на бин user которого нет... (просто в неожиданном месте вышло...)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)