2

这是我的struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

<constant name="struts.devMode" value="true" /> 
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />  

<package name="Authentiate" extends="struts-default">

<global-results>

<result name="error">/error.jsp</result>

</global-results>

<action name="loginAuthenticate*" class="com.authenticate.actions.LoginAuthenticate" method="{1}">

<result name="success">/welcome.jsp</result>
<result name="error">/error.jsp</result>
<result name="redirectRegister" type="redirect">/registration.jsp</result>

</action>

</package>

我没有使用速度模板,但我收到以下错误。

java.lang.RuntimeException: com.opensymphony.xwork2.inject.DependencyException: com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=org.apache.struts2.views.velocity.VelocityManager, name='default'] in public void org.apache.struts2.osgi.OsgiConfigurationProvider.setVelocityManager(org.apache.struts2.views.velocity.VelocityManager). - Class: com.opensymphony.xwork2.inject.ContainerBuilder
4

2 回答 2

0

真是一个奇怪的错误。通过从依赖项中删除spring-struts jar 来修复。

如果您没有在结果中使用速度模板,则不需要将速度添加为依赖项。默认情况下,Struts2 使用 Freemarker 模板。

如果您的服务器未使用 JMX,则可能看不到错误,但如果您在启用 JMX 的应用服务器(如 JBOSS )中运行,则可能会引发错误。

于 2013-04-30T19:39:35.027 回答
0

首先尝试使用默认类型显式指向结果类型dispatcher

<result name="success" type="dispatcher">/welcome.jsp</result>
<result name="error" type="dispatcher">/error.jsp</result>
<result name="redirectRegister" type="redirect">/registration.jsp</result>

如果这没有帮助,看起来有一些无法解决的 struts 依赖项。根据apache 的 bugtracker上的这个错误VelocityManager,你应该将bean 添加到你的struts.xml

<bean class="org.apache.struts2.views.velocity.VelocityManager" name="default" optional="true" />
于 2013-04-30T06:49:03.760 回答