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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Apache Tomcat

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

Q&A

1回答

8053閲覧

【Tomcat】シンボリックリンクで結んだサーブレットファイルで動的なwebページを表示させたい

mtmiddle

総合スコア12

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Apache Tomcat

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

0グッド

0クリップ

投稿2020/05/11 14:05

編集2022/01/12 10:55

前提・実現したいこと

tomcatで動的なwebページを表示させることを目指しています。

しかし、サーブレットファイルが正しく表示されないようで悩んでおります。

問題の原因としてシンボリックリンクが影響していると思われます。
tomcatファイルをCドライブに置いているため、直接的なファイル操作が制限されることを嫌って、
シンボリックリンクでwebappsファイル<===>アプリケーションフォルダ(User/●●●/tomapps)間を結んでいます。

catalina/localhost/hello.xml中に

xml

1<Context path="/hello" 2docBase="C:\tomcat9\webapps\tomapps"/> 3

と記載することで
localhost8080/helloへ接続はできるのですが、

xml

1<Context path="/hello" 2docBase="C:\User\●●●\tomapps"/> 3

と表現すると
localhost8080/helloへ接続ができなくなってしまいます。

ネットで調査をすると、どうやら
tomcat/conf/context.xml中の<context>以下に

xml

1<Context> 2 <Resources className="org.apache.catalina.webresources.StandardRoot" allowLinking="true"/> 3

と記載するとシンボリックリンクが有効になるとあり、実行してみたのですが、
うまくいかず・・・

シンボリックリンクによるエラーを解決する方法として他にできることはあるものでしょうか

発生している問題・エラーメッセージ

tomcatmaneger

1404エラー 2 3タイプ ステータスレポート 4 5メッセージ /hello/ 6 7説明 オリジンサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、またはそれが存在することを開示するつもりはありません。

補足情報(FW/ツールのバージョンなど)

環境:windows10
Tomcatバージョン: Apache Tomcat/9.0.34
java バージョン: java11 amazon colette
IDE : VScode

追記 20200513

context.xml

xml

1<Context> 2 <Resources className="org.apache.catalina.webresources.StandardRoot" allowLinking="true"/> 3 <!-- Default set of monitored resources. If one of these changes, the --> 4 <!-- web application will be reloaded. --> 5 <WatchedResource>WEB-INF/web.xml</WatchedResource> 6 <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource> 7 <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> 8 9 <!-- Uncomment this to disable session persistence across Tomcat restarts --> 10 <!-- 11 <Manager pathname="" /> 12 --> 13</Context> 14

エラーコード

13-May-2020 08:21:25.400 情報 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.undeploy コンテキストパス [/tomapps] のWebアプリケーションの配備を解除します 13-May-2020 08:21:25.413 情報 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Webアプリケーションディレクトリ [C:\tomcat9\webapps\tomapps] を配備します 13-May-2020 08:21:25.426 警告 [Catalina-utility-2] org.apache.catalina.core.StandardContext.postWorkDirectory コンテキスト [/tomapps] の作業ディレクトリ [C:\tomcat9\work\Catalina\localhost\tomapps] を作成できません。 13-May-2020 08:21:25.518 重大 [Catalina-utility-2] org.apache.jasper.EmbeddedServletOptions.<init> あなたが指定したscratchDir: [C:\tomcat9\work\Catalina\localhost\tomapps] は使用できま せん

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

take88

2020/05/12 03:57

「と記載するとシンボリックリンクが有効になるとあり、実行してみたのですが、うまくいかず・・・」とのことですが、どううまく行かないのか教えて下さい。また、TocmatのログにエラーやExceptionは出ていませんか?
mtmiddle

2020/05/12 14:22

logを確認したところ次のようなエラーコードが確認できました。 Caused by: org.apache.catalina.LifecycleException: グローバル、ホスト単位またはコンテキスト固有のcontext.xmlファイルの処理に失敗しました。したがって、コンテキスト[/tomapps]を開始できません。 at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:200) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717) context.xmlに問題ありということで、 allowLinkingの記載方法に問題があったということでしょうか?
guest

回答1

0

<Context> が閉じてないのが原因かも。

<Context path="/hello" docBase="C:\User\●●●\tomapps"> <Resources className="org.apache.catalina.webresources.StandardRoot" allowLinking="true"/> </Context>

※Windows で allowLinking="true" を有効にした場合、セキュリティの問題があるので、気をつけてください。

投稿2020/05/12 15:22

take88

総合スコア1351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mtmiddle

2020/05/12 23:30 編集

元々のcontext.xmlの記述を本文へ追記いたしました。 </Context>で閉じられてはいたようです。 教えていただいた ``` <Context path="/hello" docBase="C:\User\●●●\tomapps"> <Resources className="org.apache.catalina.webresources.StandardRoot" allowLinking="true"/> </Context> ``` をcontext.xmlの末尾に設けたりしましたが、症状は改善されないようです。 なお、追記エラーコードに記載の現象が発生しました。
take88

2020/05/13 04:29

「context.xmlファイルの処理に失敗しました」のエラーは出なくなったってことですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問