Mac OS Xでtomcat6のNIOを使う際の注意
こんにちは。abbyのMac担当です。
ちょっと野暮用でtomcat6を触ってたんだけどNIOはどうもそのままだとうまく動かない。
このネタはtomcatのMLにも流れてたけど。
tomcat6からはNIOのConnectorが使える。
いろんなところに書かれてるけど設定は簡単で
<!-- original <Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" /> --> <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" connectionTimeout="20000" redirectPort="8443" />
のようにprotocolを変えるだけでいい。
これでCometProcessorを実装したServletを書いて・・・って進むわけなんだけどMacだとそのまま動きません。
なんかInvalid argumentとか言われるはずです。
回避するにはVMのoptionに
-Djava.net.preferIPv4Stack=true
こいつを追加する必要があります。
まあようはIPv4を優先してくれって設定なんだけどー。
Invalid argumentって出る場合はこのoptionを疑えみたいな話がどっかにあったかも知れないけど忘れた。
まあMacでjavaなんて触るひとなんていないよね。キモイし。
うくく。