无法找到 ref-name jsonValidationWorkflowStack 引用的拦截器 class
Unable to find interceptor class referenced by ref-name jsonValidationWorkflowStack
在我的 Struts2 应用程序中,我在 struts.xml
中执行了以下操作
<action name="submitRecruitmentProcess" method="submitRecruitmentProcess"
class="com.erp.people.action.RecruitementProcessManagementAction">
<result name="success">jsp/process/processlist.jsp</result>
<interceptor-ref name="jsonValidationWorkflowStack"></interceptor-ref>
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">actionErrors\[\d+\], fieldErrors\..+$,
actionMessages\[\d+\]</param>
</result>
</action>
我正在扩展 ma struts.xml 文件中的 json-default
并且也在我的 class 路径中使用 struts-json 插件。但是在 运行 应用程序上,我收到如下错误
无法找到 ref-name jsonValidationWorkflowStack
引用的拦截器 class
如果有任何关于问题的想法,我们将不胜感激。
我关注了thislink
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>jsp/login/login.jsp</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<context-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
</web-app>
interceptor-ref
标签不能有空体,所以你需要简化它的用法
<interceptor-ref name="jsonValidationWorkflowStack"/>
此拦截器堆栈在您的包应该扩展的 json-default
包中可用,即
<package name="default" extends="json-default">
json 插件应该在 class 路径上 在运行时 。
错误表明您没有将 struts2 json 插件 jar 文件放在 class 路径中(即在 WEB-INF/lib
中)。获取 struts2-json-plugin-2.3.20.jar
并将其放入 class 路径以解决问题。如果您已经下载了 struts2 个 Jar,那么这个 Jar 文件可以被视为下载包的一部分。
在检查您提供的 link 时,如果您想使用 Struts2-2.3.20
.
,我发现了一些问题
1) struts.xml
中的DOCTYPE
声明不正确。应该是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" extends="json-default">
<action name="login" class="com.examples.action.LoginAction">
<interceptor-ref name="jsonValidationWorkflowStack"></interceptor-ref>
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">actionErrors\[\d+\], fieldErrors\..+$,
actionMessages\[\d+\]</param>
</result>
</action>
</package>
</struts>
我刚刚用不同的包命名了登录 class 用于测试。
另外 validation.xml 文件的 DOCTYPE
声明不正确,应该是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
现在谈到插件,如果您在 class 路径中没有 JSON 插件,那么您将得到运行时异常:
Caused by: Parent package is not defined: json-default
要修复此问题,请在您的应用程序的 WEB-INF/lib
中添加 struts2-json-plugin-2.3.20
,以便它位于 class 路径中。
现在 JSP 页面使用 JQuery 标签,您必须将 struts2-jquery-plugin-2.5.3.jar
放在 class 路径中。
我已经用 Struts2-2.3.20
版本对其进行了测试,请更正您的代码并查看是否可以解决问题。
在我的 Struts2 应用程序中,我在 struts.xml
<action name="submitRecruitmentProcess" method="submitRecruitmentProcess"
class="com.erp.people.action.RecruitementProcessManagementAction">
<result name="success">jsp/process/processlist.jsp</result>
<interceptor-ref name="jsonValidationWorkflowStack"></interceptor-ref>
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">actionErrors\[\d+\], fieldErrors\..+$,
actionMessages\[\d+\]</param>
</result>
</action>
我正在扩展 ma struts.xml 文件中的 json-default
并且也在我的 class 路径中使用 struts-json 插件。但是在 运行 应用程序上,我收到如下错误
无法找到 ref-name jsonValidationWorkflowStack
引用的拦截器 class如果有任何关于问题的想法,我们将不胜感激。
我关注了thislink
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>jsp/login/login.jsp</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<context-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
</web-app>
interceptor-ref
标签不能有空体,所以你需要简化它的用法
<interceptor-ref name="jsonValidationWorkflowStack"/>
此拦截器堆栈在您的包应该扩展的 json-default
包中可用,即
<package name="default" extends="json-default">
json 插件应该在 class 路径上 在运行时 。
错误表明您没有将 struts2 json 插件 jar 文件放在 class 路径中(即在 WEB-INF/lib
中)。获取 struts2-json-plugin-2.3.20.jar
并将其放入 class 路径以解决问题。如果您已经下载了 struts2 个 Jar,那么这个 Jar 文件可以被视为下载包的一部分。
在检查您提供的 link 时,如果您想使用 Struts2-2.3.20
.
1) struts.xml
中的DOCTYPE
声明不正确。应该是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" extends="json-default">
<action name="login" class="com.examples.action.LoginAction">
<interceptor-ref name="jsonValidationWorkflowStack"></interceptor-ref>
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">actionErrors\[\d+\], fieldErrors\..+$,
actionMessages\[\d+\]</param>
</result>
</action>
</package>
</struts>
我刚刚用不同的包命名了登录 class 用于测试。
另外 validation.xml 文件的 DOCTYPE
声明不正确,应该是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
现在谈到插件,如果您在 class 路径中没有 JSON 插件,那么您将得到运行时异常:
Caused by: Parent package is not defined: json-default
要修复此问题,请在您的应用程序的 WEB-INF/lib
中添加 struts2-json-plugin-2.3.20
,以便它位于 class 路径中。
现在 JSP 页面使用 JQuery 标签,您必须将 struts2-jquery-plugin-2.5.3.jar
放在 class 路径中。
我已经用 Struts2-2.3.20
版本对其进行了测试,请更正您的代码并查看是否可以解决问题。