元素类型的内容" action"必须匹配"(param | re sult | interceptor-ref | exception-mapping)*

时间:2015-03-16 06:40:35

标签: maven struts2

我使用Maven创建了一个struts2项目。以下是我的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>LoginAppInStruts2</display-name>
<filter> 
 <filter-name>
    struts2
 </filter-name>
 <filter-class>
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
 </filter-class>
</filter>

<filter-mapping>
 <filter-name>struts2</filter-name>
 <url-pattern>/*</url-pattern> 
</filter-mapping>

<welcome-file-list>
   <welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
</web-app>

下面是我的struts.xml

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

<struts>
  <package name="default" extends="struts-default" namespace="/">
     <action name="Login" class="com.demo.LoginAction">
       <result name="success">Welcome.jsp</result>
     </action>
  </package>
</struts>

每当我执行mvn package命令创建.war文件时,它都会给出以下错误:

SEVERE:   [44:34.354] The content of element type "action" must match "(param|result|interceptor-ref|exception-mapping)*". at (null:12:18)
SEVERE:   [44:34.356] Dispatcher initialization failed Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 8.495 sec <<< FAILURE!
testHelloAction(com.demo.actions.HelloActionTest)  Time elapsed: 7.644 sec  <<< ERROR!Unable to load configuration. - file:/Z:/workspace/Test_Project/target/classes/struts.xml:12:18
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:501)
        at org.apache.struts2.util.StrutsTestCaseHelper.initDispatcher(StrutsTestCaseHelper.java:54)
        at org.apache.struts2.StrutsTestCase.initDispatcher(StrutsTestCase.java:229)
        at org.apache.struts2.StrutsTestCase.setUp(StrutsTestCase.java:209)
        at junit.framework.TestCase.runBare(TestCase.java:132)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:232)
        at junit.framework.TestSuite.run(TestSuite.java:227)
        at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:79)
        at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
        at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
        at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: Unable to load configuration. - file:/Z:/workspace/Test_Proje
ct/target/classes/struts.xml:12:18

有人可以帮忙吗?

HelloTestAction.java中的代码

package com.abacus.actions;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.StrutsTestCase;

public class HelloActionTest extends StrutsTestCase {

  public void testHelloAction() throws Exception {
    HelloAction hello = new HelloAction();
    String result = hello.execute();
    assertTrue("Expected a success result!",
            ActionSupport.SUCCESS.equals(result));
    assertTrue("Expected the default message!",
            hello.getText(HelloAction.MESSAGE).equals(hello.getMessage()));
    }
 }

0 个答案:

没有答案