0

以下のエラーが表示されます。多くのことをグーグルで検索し、さまざまな種類のソリューションを取得しましたが、解決できません。

私のスタックトレース

    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> 

私のディレクトリ構造

ここに画像の説明を入力

CreateTicket.java

package com.ticketservice;

import com.opensymphony.xwork2.ActionSupport;

public class CreateTicket extends ActionSupport {

    public String execute() {

       return "success";
    }
}

ようこそ.jsp

<p>done</p>

ログイン.jsp

<p>not done</p>

Struts を学習するためにこのプロジェクトを作成したので、struts.xml からアクション クラスへのマッピングがどのように行われるかを確認したかっただけです。

localhost:8080/TicketSystem/index.html を正常に実行できました。
しかし、localhost:8080/TicketSystem/CreateTicket.action を実行すると。上記のエラーが発生しました..

解決するのを手伝ってください。

よろしく、 マヘシュ

4

3 に答える 3

1

名前空間を定義していないためだと思います。

これを試して。

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

于 2012-12-11T06:11:10.150 に答える
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 を記述する必要はありません。それはあなたの質問に対する望ましい答えかもしれません。

私はそれがうまくいくと確信しています。

于 2013-10-14T08:15:28.057 に答える
0

このエラーが発生した理由は、ビルド パスでした。私のビルドパスは、WEB-INFクラスではなく他のディレクトリに設定されていました。この変更を行うことで、私の問題は解決しました。

于 2012-12-13T09:05:23.113 に答える