SpringMVC dispatcher-servlet.xmlとapplicationContext.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" 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>SpringMVC</display-name>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern/>
</filter-mapping>
<filter-mapping>
<filter-name>cacheControlFilter</filter-name>
<url-pattern/>
</filter-mapping>
<filter-mapping>
<filter-name>loggingFilter</filter-name>
<url-pattern/>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--
ContextLoaderListenerの読み込んだグローバルなコンテキストの子供して階層化される。
そのため、子供のコンテキストは親にアクセス可能だが、その逆は不可能である。
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
以下、参考。
Apache2.2 Tomcat7の連携(Windows7)
Apacheの設定
ApacheとTomcat.を連携するためには「mod_proxy」「mod_proxy_ajp」を利用するので、これらのモジュールを有効にする。
httpd.confを編集
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
次にApacheへのリクエストをTomcatへ連携するために以下の設定を行い、ApacheがTomcatのプロキシとして機能するように設定する (httpd.confの編集)。
<Location /> ProxyPass ajp://localhost:8009/ </Location>
Tomcatの設定
TomcatではApacheからのリクエストを8009ポートで受けつけるように以下の設定を行う。
conf/server.xmlを編集
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
これでApacheとTomcatを起動すれば、Apache経由でのTomcatへのアクセスができるようになる。
Apache mod_rewriteとリバースプロキシ
自分用メモ。
Apacheでmod_rewriteしてリバースプロキシをする際にハマった。
mod_rewriteの引数である[P]は、評価結果をmod_proxyに渡してくれる。
つまり[P]を付けただけではリバースプロキシをしてくれるわけではない。
以下、mod_rewriteしてリバースプロキシをさせた際のサンプル。
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# ログ出力
RewriteLog C:/Apache2/logs/rewrite.log
RewriteLogLevel 9
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} example\.co\.jp
RewriteRule ^/(.*)$ http://example.co.jp/personality/ [P,L]
</IfModule>
<IfModule mod_proxy.c>
ProxyRequests On
</IfModule>
<VirtualHost *:80>
ServerName example.co.jp
ProxyPass / http://www.〇〇〇.co.jp/
ProxyPassReverse / http://www.〇〇〇.co.jp/
</VirtualHost>
これでexample.co.jpでアクセスするとlocalhostへとび、
mod_rewriteによりexample.co.jp/personality/に変換。
その後、リバースプロキシによりexample.co.jpの部分が
http://www.〇〇〇.co.jp/に変換され、
最終的にhttp://www.〇〇〇.co.jp/personality/となる。
リバースプロキシの設定によりブラウザ上では
http://example.co.jp/personality/と表示される。
※ hostsファイルを書き換え、exmaple.co.jpがlocalhostを向くようにしている。
Tomcat8 複数インスタンスの起動
以下、備忘録。
server.xmlをコピーしてserver2.xmlを作成。
下記の書き換えを行う。
<Server port="8005" shutdown="SHUTDOWN">
→ <Server port="8004" shutdown="SHUTDOWN">
<Service name="Catalina">
→ <Service name="Catalina2">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
→ <Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8455" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
→ <Connector port="8019" protocol="AJP/1.3" redirectPort="8455" />
<Engine name="Catalina" defaultHost="localhost">
→ <Engine name="Catalina2" defaultHost="localhost" jvmRoute="jvm2">
※server.xmlにもjvm1で追記
上記、変更後、以下のコマンドを実行する。
startup.bat
startup.bat -config conf\server2.xml
これで8080と8081でTomcatの起動を確認できる。
Gradle ことはじめ
Struts2 + Spring3 + MyBatisの連携。
Spring3を導入するために、Gradleを使おうとして、ただいま勉強中。
とりあえず、Gradleのインストールおよび。GradleでHelloWorldをしたので、そこまでの内容を記載しておく。
続きを読む