2013-04-30 2 views
2

Вот мой struts.xml файлИсключения без использования скорости в Struts 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 
+0

Какая версия Struts2? –

+0

Вы используете комплект OSGi? Возможно, вы добавили слишком много банок ;-) –

ответ

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> 

Если это не помогает, похоже, есть некоторые распорки зависимости, которые не могут быть решены. Согласно this bug в багтрекере Апача вы должны добавить VelocityManager боб к вашему struts.xml:

<bean class="org.apache.struts2.views.velocity.VelocityManager" name="default" optional="true" /> 
0

Это действительно странно ошибка. Исправлено удалением spring-struts jar из зависимостей.

Скорость не требуется добавлять как зависимость, если вы не используете шаблоны скорости в своих результатах. По умолчанию Struts2 использует шаблоны Freemarker.

Ошибки могут не проявиться, если ваш сервер не использует JMX, но если вы запустите его в JMX enabled appserver like JBOSS, он может поднять.