$CATALINA_HOME/conf/context.xml の <Context> のすぐ後に
<Resources className="org.apache.catalina.webresources.StandardRoot" allowLinking="true"/>
を追記する。
バージョン8.0からこうなったみたい。
火曜日, 9月 30, 2014
Tomcat8.0のRequestDumperFilterでServletの文字化け解消
$CATALINA_HOME/webapps/アプリ名/WEB-INF/web.xml の先頭部分につぎのように<filter>を追記する。
------------------------------------------------------------------------------
<web-app>
<filter>
<filter-name>requestdumper</filter-name>
<filter-class>
org.apache.catalina.filters.RequestDumperFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>requestdumper</filter-name>
<url-pattern>/target_path/*</url-pattern>
</filter-mapping>
(以下省略)
------------------------------------------------------------------------------
$CATALINA_HOME/conf/logging.properties を編集。
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
に
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, 5request-dumper.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
のように 5request-dumper.org.apache.juli.FileHandler, を追記し、
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
の下あたりに
# request dumper configuration
5request-dumper.org.apache.juli.FileHandler.level = INFO
5request-dumper.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
5request-dumper.org.apache.juli.FileHandler.prefix = request-dumper.
5request-dumper.org.apache.juli.FileHandler.formatter = org.apache.juli.VerbatimFormatter
org.apache.catalina.filters.RequestDumperFilter.level = INFO
org.apache.catalina.filters.RequestDumperFilter.handlers = 5request-dumper.org.apache.juli.FileHandler
を追記する。
アプリをデプロイし直し、Tomcatを再起動。
これで
$CATALINA_HOME/logs/
に
request-dumper.2014-09-30.log
のようなログファイルが生成される。
理由はわからないが、POSTリクエストで送信されたUTF-8の2バイト文字が、それを受け取ったフィルターのurl-patternに含まれるServletで文字化けしなくなった。
ちなみにJavaのソースコードはシフトJIS。
------------------------------------------------------------------------------
<web-app>
<filter>
<filter-name>requestdumper</filter-name>
<filter-class>
org.apache.catalina.filters.RequestDumperFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>requestdumper</filter-name>
<url-pattern>/target_path/*</url-pattern>
</filter-mapping>
(以下省略)
------------------------------------------------------------------------------
$CATALINA_HOME/conf/logging.properties を編集。
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
に
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, 5request-dumper.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
のように 5request-dumper.org.apache.juli.FileHandler, を追記し、
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
の下あたりに
# request dumper configuration
5request-dumper.org.apache.juli.FileHandler.level = INFO
5request-dumper.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
5request-dumper.org.apache.juli.FileHandler.prefix = request-dumper.
5request-dumper.org.apache.juli.FileHandler.formatter = org.apache.juli.VerbatimFormatter
org.apache.catalina.filters.RequestDumperFilter.level = INFO
org.apache.catalina.filters.RequestDumperFilter.handlers = 5request-dumper.org.apache.juli.FileHandler
を追記する。
アプリをデプロイし直し、Tomcatを再起動。
これで
$CATALINA_HOME/logs/
に
request-dumper.2014-09-30.log
のようなログファイルが生成される。
理由はわからないが、POSTリクエストで送信されたUTF-8の2バイト文字が、それを受け取ったフィルターのurl-patternに含まれるServletで文字化けしなくなった。
ちなみにJavaのソースコードはシフトJIS。
木曜日, 9月 11, 2014
Azureで仮想ネットワーク内仮想マシンのDNS名
仮想マシンOSがWindowsの場合、コマンドプロンプトで
C:\Users\Administrator>ipconfig
Windows IP 構成
イーサネット アダプター Ethernet 21:
接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net
リンクローカル IPv6 アドレス. . . . .: fe80::7de3:9900:a6a0:eda1%34
IPv4 アドレス . . . . . . . . . . . .: 192.168.91.4
サブネット マスク . . . . . . . . . .: 255.255.255.128
デフォルト ゲートウェイ . . . . . . .: 192.168.91.1
Tunnel adapter isatap.eldb.m2.internal.cloudapp.net:
メディアの状態. . . . . . . . . . . .: メディアは接続されていません
接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net
Tunnel adapter Teredo Tunneling Pseudo-Interface:
接続固有の DNS サフィックス . . . . .:
IPv6 アドレス . . . . . . . . . . . .: 2001:0:9d38:6abd:2cf8:151e:3f57:a4fb
リンクローカル IPv6 アドレス. . . . .: fe80::2cf8:151e:3f57:a4fb%14
デフォルト ゲートウェイ . . . . . . .: ::
C:\Users\Administrator>
この中の「接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net」を確認。
例えばそのマシンのホスト名が hoge だったら
hoge.eldb.m2.internal.cloudapp.net
がその仮想ネットワーク内で使えるそのマシンのDNS名。
OSがLinuxの場合、
$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search elweb.m5.internal.cloudapp.net
nameserver 168.63.129.16
$
この中の「search elweb.m5.internal.cloudapp.net」を確認。
そのマシンのホスト名が hogehoge だったら
hogehoge.elweb.m5.internal.cloudapp.net
がその仮想ネットワーク内で使えるそのマシンのDNS名。
C:\Users\Administrator>ipconfig
Windows IP 構成
イーサネット アダプター Ethernet 21:
接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net
リンクローカル IPv6 アドレス. . . . .: fe80::7de3:9900:a6a0:eda1%34
IPv4 アドレス . . . . . . . . . . . .: 192.168.91.4
サブネット マスク . . . . . . . . . .: 255.255.255.128
デフォルト ゲートウェイ . . . . . . .: 192.168.91.1
Tunnel adapter isatap.eldb.m2.internal.cloudapp.net:
メディアの状態. . . . . . . . . . . .: メディアは接続されていません
接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net
Tunnel adapter Teredo Tunneling Pseudo-Interface:
接続固有の DNS サフィックス . . . . .:
IPv6 アドレス . . . . . . . . . . . .: 2001:0:9d38:6abd:2cf8:151e:3f57:a4fb
リンクローカル IPv6 アドレス. . . . .: fe80::2cf8:151e:3f57:a4fb%14
デフォルト ゲートウェイ . . . . . . .: ::
C:\Users\Administrator>
この中の「接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net」を確認。
例えばそのマシンのホスト名が hoge だったら
hoge.eldb.m2.internal.cloudapp.net
がその仮想ネットワーク内で使えるそのマシンのDNS名。
OSがLinuxの場合、
$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search elweb.m5.internal.cloudapp.net
nameserver 168.63.129.16
$
この中の「search elweb.m5.internal.cloudapp.net」を確認。
そのマシンのホスト名が hogehoge だったら
hogehoge.elweb.m5.internal.cloudapp.net
がその仮想ネットワーク内で使えるそのマシンのDNS名。
登録:
投稿 (Atom)