1

Web 動的プロジェクトを作成しましたStruts2Starter。ターゲット ランタイムの場合、Web コンテナーは Apache Tomcat 7 です。

このプロジェクトを実行すると、エラーが発生します。

The requested resource(/Struts2Starter/) is not available

パスは次のとおりです。

プロジェクト エクスプローラー

Webb フォルダーの要素/ファイル/コンテンツが展開され、展開されたリソース フォルダーに:

Webb フォルダーの要素/ファイル/コンテンツがデプロイされ、デプロイされたリソース フォルダー内にある

コード スニペット:

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>
<package name="default" extends="default">
<action name="getTutorial" class="TutorialAction">
<result name="success">/success.jsp</result>
<result name="failure">/error.jsp</result>

</action>
</package>


</struts>

web.xml:

 <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>Struts2Starter</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>
      
    </web-app>

error.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Error Page!
</body>
</html>

success.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Success Page!
</body>
</html>

ただし、他の Web プロジェクトを実行しているときは、正常に動作します。でウェルカム ファイルを渡しましたweb.xml。後で不要になったので削除しました。

実行してみました:

http://localhost:8083/Struts2Starter/
http://localhost:8083/Struts2Starter/TutorialAction
http://localhost:8083/Struts2Starter/TutorialAction.action

コンパイラが利用可能なプロジェクトを見つけられないため、すべて同じエラーが発生します。

プロジェクトがビルドされます。8080 はすでに一部のサービスで使用されているため、ポートは 8080 ではなく 8083 です。ただし、前述したように、他の Web プロジェクトは 8083 を使用して Apache 7 で正常に動作しています。プロジェクトの展開アセンブリで、ユーザー ライブラリ "Struts2" (上のプロジェクト エクスプローラーの画像に表示) を展開パス "WEB-INF" にマップしました。 /lib".

プロジェクトが実行されていない理由がわかりません。何か提案はありますか? 同様の問題で他のスレッドを参照しましたが、それらのほとんどはサーブレット用であり、サーブレットのマッピングを行っておらず、代わりにフィルターを使用しています。

エラーのスナップショット:

エラーのスナップショット

4

2 に答える 2

0

Struts構成で次のことを試してください

<?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>
    <package name="default" extends="default" namespace="/">

        <action name=""> <!-- or you can include index.jsp file in web.xml -->
            <result>/index.jsp</result>
        </action>

        <action name="getTutorial" class="TutorialAction">
            <result name="success">/success.jsp</result>
            <result name="failure">/error.jsp</result>
        </action>

    </package>
</struts>

名前空間を指定しない場合デフォルトの名前空間は "" 空の文字列です。ここにドキュメントがあります

于 2014-07-21T11:12:34.873 に答える
0

あなたが使用した

http://localhost:8083/Struts2Starter/
http://localhost:8083/Struts2Starter/TutorialAction
http://localhost:8083/Struts2Starter/TutorialAction.action

しかし、どちらもアクションにマップされません。struts.xml修正し、正しい DTD に変更する必要があります。

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

<struts>
 <package name="default" extends="struts-default">
  <action name="getTutorial" class="TutorialAction">
    <result name="success">/success.jsp</result>
    <result name="failure">/error.jsp</result>
  </action>
</package>

この URL を試してください

http://localhost:8083/Struts2Starter/getTutorial
http://localhost:8083/Struts2Starter/getTutorial.action

また、必要なすべての jar をアプリケーションの lib フォルダーにダウンロードします。たとえばcommons-lang3-3.3.2.jar

于 2014-07-21T11:26:18.573 に答える