2012-12-11 116 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,這將導致錯誤。這可能是你想要的答案。

我相信會有效果。

相關問題