ClassNotFound提供了struts框架

时间:2015-10-28 19:01:33

标签: java jsp tomcat struts

我在使用struts表单标记时遇到问题,这会返回ClassNotFoundException:

id

具有以下结构:

javax.servlet.jsp.JspException: Exception creating bean of class com.myproject.form.GenerationForm: java.lang.ClassNotFoundException: com.myproject.form.GenerationForm
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:568)

我在Tomcat的lib文件夹中有struts JAR。我的班级在webapps WEB_INF文件夹中。

我知道该类已正确加载,因为使用基本JSP,我可以实例化它并正常使用它。只有在尝试由struts使用时才会抛出ClassNotFoundException。

在struts配置文件中,表单bean定义为(struts-config.xml):

tomcat
|_____lib
|_____webapps
      |______myApp
             |____WEB_INF

表单定义为(page.jsp):

<struts-config>
    <form-beans>
        <form-bean name="generation"
            type="com.myproject.form.GenerationForm" />
    </form-beans>
    [...]

    <action-mappings>
        <action path="/generator" type="com.myproject.action.Generator"
        input="/secure/confirm.jsp" name="generation" scope="request">
            <forward name="error" path="/page/error.page" />
            <forward name="close" path="/page/close.page" />
            <forward name="results" path="/results.action?id={0}" redirect="true" />
        </action>
    </action-mappings>

</struts-config>

为了测试这个问题,我在tomcat的lib文件夹中生成了一个包含我的应用程序类的JAR文件,在这种情况下,Struts框架可以加载类,一切都按预期工作。

由于类应该由应用程序的类加载器加载,为什么Struts不能“看到”我的webapp类?有没有办法指定它们应该从哪里加载?

0 个答案:

没有答案