这是我的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
答案 0 :(得分: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的this bug,您应该将VelocityManager
bean添加到struts.xml
:
<bean class="org.apache.struts2.views.velocity.VelocityManager" name="default" optional="true" />
答案 1 :(得分:0)
这是真的奇怪的错误。通过从依赖项中删除spring-struts jar来解决此问题。
如果您未在结果中使用力度模板,则无需将Velocity添加为依赖项。默认情况下,Struts2使用Freemarker模板。
如果您的服务器没有使用JMX,可能看不到错误,但如果您在JMX enabled appserver like JBOSS中运行它可能会引发错误。