質問編集履歴

1

やりたいことと質問内容が異なっていたため書き直しました。申し訳ありません。

2017/06/30 01:58

投稿

Batoh33789
Batoh33789

スコア136

test CHANGED
@@ -1 +1 @@
1
- jspの${pageContext.request.contextPath}が使えな
1
+ http://localhost/hoge/プロジェクト名/サーブレット名で動作させた
test CHANGED
@@ -2,6 +2,206 @@
2
2
 
3
3
 
4
4
 
5
+ 私の中で状況の整理を致しましたところ、
6
+
7
+ 質問内容とやりたいことが異なっているため、質問文を書き直します。
8
+
9
+ 回答下さった方、ご迷惑おかけ致しまして申し訳ございません。
10
+
11
+
12
+
13
+ ●やりたいこと
14
+
15
+ http://localhost/hoge/プロジェクト名/サーブレット名
16
+
17
+ で動作させたい
18
+
19
+
20
+
21
+ 環境
22
+
23
+ サーバ:Windows Server 2012 R2
24
+
25
+ Apacheバージョン:2.4.26
26
+
27
+ Tomcatバージョン:8.5
28
+
29
+
30
+
31
+ 以下最初の設定
32
+
33
+ httpd.conf
34
+
35
+ ```
36
+
37
+ <Location /hoge/>
38
+
39
+ ProxyPass ajp://localhost:8009/
40
+
41
+ </Location>
42
+
43
+ ```
44
+
45
+
46
+
47
+ tomcatのserver.xml(A)
48
+
49
+ ```
50
+
51
+ <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
52
+
53
+ <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
54
+
55
+ <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
56
+
57
+ prefix="localhost_access_log." suffix=".txt"
58
+
59
+ pattern="%h %l %u %t &quot;%r&quot; %s %b" />
60
+
61
+ </Host>
62
+
63
+ ```
64
+
65
+ 上記で動作させたところ、
66
+
67
+ http://localhost/hoge/プロジェクト名/サーブレット名
68
+
69
+ でサーブレット自体は動作はするものの、fowardしたjspファイル内で、
70
+
71
+ ```
72
+
73
+ <script src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js"></script>
74
+
75
+ ```
76
+
77
+ と記載している部分が想定しているパスとは違うパスを指してしまうため、javascriptファイルが読み込めずに動作しませんでした。
78
+
79
+ ```
80
+
81
+ // 指してほしいパス(実際にこのパスを打てばファイルは存在していました)
82
+
83
+ http://localhost/hoge/プロジェクト名/js/jquery-1.11.3.min.js
84
+
85
+ ```
86
+
87
+ ```
88
+
89
+ // 実際のパス
90
+
91
+ http://localhost/プロジェクト名/js/jquery-1.11.3.min.js
92
+
93
+ ```
94
+
95
+
96
+
97
+ 次に、webapp内にhogeというディレクトリを作ってその中にwarファイルを配置しましたが、自動展開されなかったため、tomcatのserver.xmlのappBaseを下記のように書き換えました(長くなるため変更箇所のみ記載します。下記以外は上記(A)と変わりません)
98
+
99
+ ```
100
+
101
+ <Host name="localhost" appBase="D:/tomcat/webapps/hoge" unpackWARs="true" autoDeploy="true">
102
+
103
+ ```
104
+
105
+ また、上記に伴い、httpd.confを以下のように変更しました
106
+
107
+ httpd.conf
108
+
109
+ ```
110
+
111
+ <Location /hoge/>
112
+
113
+ ProxyPass ajp://localhost:8009/hoge/
114
+
115
+ </Location>
116
+
117
+ ```
118
+
119
+ 上記変更を行ったうえで、
120
+
121
+ http://localhost/hoge/プロジェクト名/サーブレット
122
+
123
+ にアクセスしたところ、
124
+
125
+ このサイトにアクセスできません。
126
+
127
+ と表示され、
128
+
129
+ 気になったので、
130
+
131
+ http://localhost:8080/hoge/プロジェクト名/サーブレット
132
+
133
+ にアクセスしてみたら、404エラーとなりました。
134
+
135
+
136
+
137
+ ためしに、hogeフォルダの下に下記のようなtest.jspというファイルを置き
138
+
139
+ test.jsp
140
+
141
+ ```
142
+
143
+ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
144
+
145
+ <!DOCTYPE html>
146
+
147
+ <html><head>
148
+
149
+ <title></title>
150
+
151
+ </head>
152
+
153
+ <body>
154
+
155
+ <%= request.getContextPath() %>
156
+
157
+ </body></html>
158
+
159
+ ```
160
+
161
+ 接続を試みたところ、
162
+
163
+ http://localhost/hoge/test.jsp
164
+
165
+ だと、
166
+
167
+ このサイトにアクセスできません。
168
+
169
+ が表示され
170
+
171
+ http://localhost:8080/hoge/test.jsp
172
+
173
+ だと、
174
+
175
+ /hoge
176
+
177
+ と表示されました。
178
+
179
+
180
+
181
+ なんとなく、tomcatの設定がまずいのではないかなぁとは思うのですが
182
+
183
+ どこをどう直せば修正されるのか、そもそもこれは出来ないのか等の
184
+
185
+ 判断が付かずに途方に暮れている状態です。
186
+
187
+
188
+
189
+ お手数おかけ致しますが、ご助言頂けないでしょうか。
190
+
191
+ よろしくお願い致します。
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ ======================================
200
+
201
+ 以下前の質問です。見当違いのことを書いているので読み飛ばして下さい。
202
+
203
+
204
+
5
205
  サーバが新しくなるに当たり、apacheの設定を下記のように変更したところ
6
206
 
7
207
  ${pageContext.request.contextPath}が変更されないため、cssやjsが読み込めずページが正しく表示されません。