質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

解決済

Struts2.5.25へのアップデートで404エラー

nok123
nok123

総合スコア11

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

1回答

0評価

0クリップ

968閲覧

投稿2020/11/14 13:11

編集2020/11/15 08:14

Struts2.3.32からStruts2.5.25へアップデートを試みています。

Tomcatの起動までに紆余曲折あり、やっと正常に起動できたのですが、
初期画面が表示できなくなってしまいました。
(Actionクラスにブレイクポイントを置いているが到達していない)
何か気づいたことがあれば、ぜひ、教えてください。

あたりがつけられていないため、少し長くなってしまいますが、
関連するクラスと設定ファイルの内容を記載します。
画面遷移用のクラスとjson形式で値を返すクラスがありますが、
まずは初期画面を表示したい次第です。

追記

web.xmlのurl-patternを /* と書き換えたところ、
内部で404が呼ばれるものの、ページの一部が表示されました。
/hoge/* だとダメで /* だと良いというのは何か参考になりますでしょうか。

http://localhost:8080/xxx/hoge/indexにアクセスした際の
Stacktracesは下記の通りです。(devModeをtrueにしています)

log

Stacktraces There is no Action mapped for namespace [/hoge] and action name [index] associated with context path [/xxx]. - [unknown location] com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:195) org.apache.struts2.factory.StrutsActionProxy.prepare(StrutsActionProxy.java:57) org.apache.struts2.factory.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:32) com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:60) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564) org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79) org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1441) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:722)

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" metadata-complete="true"> <listener> <listener-class>jp.co.company.common.listener.InitialServletContext</listener-class> </listener> <listener> <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class> </listener> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value> jp.co.company.common.struts, jp.co.company.basic.action.webapi, jp.co.company.basic.action.content, jp.co.company.action </param-value> </init-param> <init-param> <param-name>struts.devMode</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>struts.custom.i18n.resources</param-name> <param-value>ApplicationResources</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/hoge/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>/index.html</welcome-file> </welcome-file-list> <error-page> <error-code>401</error-code> <location>/WEB-INF/tiles/panel/basic/httpUnauthorizedLayout.jsp</location> </error-page> <error-page> <error-code>403</error-code> <location>/WEB-INF/tiles/panel/basic/httpForbiddenLayout.jsp</location> </error-page> <!-- error-page> <error-code>404</error-code> <location>/WEB-INF/tiles/panel/basic/httpNotfoundLayout.jsp</location> </error-page --> <error-page> <error-code>500</error-code> <location>/WEB-INF/tiles/panel/basic/httpInternalErrorLayout.jsp</location> </error-page> <session-config> <session-timeout>1440</session-timeout> </session-config> </web-app>

struts.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <constant name="struts.action.extension" value="" /> <constant name="struts.multipart.maxSize" value="5097152" /> <package name="struts-hoge" namespace="/hoge" extends="struts-default"> <result-types> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> <result-type name="redirect" class="org.apache.struts2.result.ServletActionRedirectResult" /> </result-types> </package> <package name="json-hoge" namespace="/hoge" extends="json-default"> <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult"/> </result-types> <interceptors> <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/> </interceptors> </package> </struts>

IndexActionクラス

package jp.co.company.basic.action.content; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import jp.co.company.basic.action.content.base.AbstractBasicAction; import jp.co.company.common.manager.SystemSettingManager; import jp.co.company.common.struts.AbstractNormalAction; @ParentPackage(value=AbstractNormalAction.PARENT_PACKAGE) @Results ({ @Result(name = IndexAction.INPUT, location="/WEB-INF/content/index.jsp") }) public class IndexAction extends AbstractBasicAction { @Override public void subBasicPrepare() throws Exception { } @Override public String subBasicExecute() throws Exception { return INPUT; } }

IndexActionクラスの親クラス

package jp.co.company.common.struts; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.Preparable; import jp.co.company.common.log.ThermoLogger; import jp.co.company.common.manager.SystemSettingManager; import jp.co.company.common.manager.session.SessionManager; import jp.co.company.dao.db.User; @ParentPackage(value=AbstractNormalAction.PARENT_PACKAGE) @Results ({ @Result(name = ActionSupport.ERROR, location="/WEB-INF/content/error.jsp") , @Result(name = AbstractNormalAction.SESSION_ERROR, location = "index", type = "redirect") , @Result(name = AbstractNormalAction.PERMISSION_ERROR, location = "index", type = "redirect") }) public abstract class AbstractNormalAction extends ActionSupport implements Preparable { public static final String PARENT_PACKAGE = "struts-hoge"; public static final String NS_THERMO = "/hoge"; protected static final String SESSION_ERROR = "session-error"; protected static final String PERMISSION_ERROR = "permission-error"; public AbstractNormalAction() { } @Override public final void prepare() throws Exception { this.subPrepare(); }; public abstract void subPrepare() throws Exception ; @Override public String execute() throws Exception { String res = this.subExecute(); return res; } protected abstract String subExecute() throws Exception; }

環境は下記の通りです。
Windows10
Eclipse
Java 1.7
Tomcat 8.0

不足している情報があればご指摘ください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。