携帯コンテンツ自動変換フィルター(Java)である
Durianをセッティングしているときに、表記の問題ではまりました。
http://durian.symmetric.jp/dev/
現象は、Durianフィルターを設定("/*"に対し)すると、
どのコンテンツも403エラーになってしまう、というものです。
いろいろ調べたところ、Tomcatのアクセスログが、
0:0:0:0:0:0:0:1 - - [22/Mar/2008:01:20:35 +0900] "GET
/durian/index.html HTTP/1.1" 403 947
となっていることに気づきました。0:0:0:0:0:0:0:1ってIPv6じゃん!
ってことです。
なのでまずは、IPv6をIPv4にもどしてみようと、いろいろググると、
下記のような情報が出てきました。
▼Windows Vista + Tomcat Tips
http://sbirobo.com/2008/01/tips-regarding-windows-vista-with-tomcat.html
▼HttpServletRequest#getRemoteAddr()とIPv6
http://d.hatena.ne.jp/Kazzz/20070129/p1
つまり、java起動オプションに"-Djava.net.preferIPv4Stack=true"
を追加すればいけそうです。
実際、set JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
として、Tomcatを起動して、Durianフィルターをかけているコンテンツに
アクセスすると、無事、変換後のコンテンツが表示されました。
念のため、再度アクセスログを確認すると、
127.0.0.1 - - [22/Mar/2008:01:22:56 +0900] "GET /durian/index.html
HTTP/1.1" 200 371
と、ちゃんとIPv4に戻っています。
ただ、開発はEclipseのWTPで行っているので、実際は
set JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
というわけにはいきません。
こちらに関しては、Eclipseの上部メニューの
[ウィンドウ] > [設定] > 適当なJREを選択して[編集]
で出現するJREの編集パネルの"デフォルトのVM引数"
に"-Djava.net.preferIPv4Stack=true"を設定することで
同様のことが実現できました。
これで、Windows(Vista)上のEclipse(WTP)での
Durianを前提にした開発の準備ができました。
次は、絵文字まわりかな。
--
0 コメント:
コメントを投稿