2012-12-11 85 views
0

我得到了下面的错误,我搜索了很多并获得了许多不同类型的解决方案,但无法解决它。没有为命名空间/和操作名称映射的操作CreateTicket

我的堆栈跟踪

SEVERE: Could not find action or result 
There is no Action mapped for namespace/and action name CreateTicket. - [unknown location] 
    at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186) 
    at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494) 
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) 
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) 
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) 
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 
    at java.lang.Thread.run(Thread.java:595) 

我在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.0.dtd"> 
<struts> 
    <constant name="struts.devMode" value="true" /> 
    <constant name="struts.multipart.maxSize" value="20480000" /> 
    <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 

    <package name="default" extends="struts-default"> 
     <action name="CreateTicket" class="com.ticketservice.CreateTicket"> 
      <result name="success">Welcome.jsp</result> 
      <result name="error">Login.jsp</result> 
     </action> 


    </package> 
</struts> 

我的目录结构

enter image description here

CreateTicket.java

package com.ticketservice; 

import com.opensymphony.xwork2.ActionSupport; 

public class CreateTicket extends ActionSupport { 

    public String execute() { 

     return "success"; 
    } 
} 

Welcome.jsp中

<p>done</p> 

的Login.jsp

<p>not done</p> 

我创建这个项目学习Struts的所以只希望看到的struts.xml映射到动作类如何完成

我成功地能够运行localhost:8080/TicketSystem/index.html。
但是,当我运行localhost:8080/TicketSystem/CreateTicket.action。我得到了上面的错误..

请帮我解决它。

问候,马赫什

+0

什么是给你的项目红色标记的错误? –

+0

也发布你的web.xml –

回答

1

我想这是因为你还没有定义的命名空间。

试试这个。

<package name="default" namespace="/" extends="struts-default">

+0

thnks,试过但没有工作...请确认我在哪里需要把我的struts.xml?进入src或进入WEB-INF /类或两者? – mahesh

+0

LoginAction呢? – Thihara

+0

我刚刚创建没有使用..让我发布其他文件的代码涉及 – mahesh

0

我得到这个错误的原因是我的构建路径。我的构建路径被设置为其他目录不在WEB-INF类。做这个改变,解决了我的问题。

+0

Dude的所有错误:-) – Thihara

0

可能是你犯了错误到struts.xml文件。所以这里有几种方法来配置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> 
    <package name="default" extends="struts-default"> 
     <action name="helloWorld" class="controller.HelloWorld"> 
      <result name="success">/HelloWorld.jsp</result> 

     </action> 
    </package> 
</struts>  

所以,如果你这样做是这种方式只是确保你要调用由动作名称的JSP操作仅ü不需要写.action,这将导致错误。这可能是你想要的答案。

我相信会有效果。

相关问题