2015年02月

昨夜というか今朝早朝は冬なのに寝汗の凄さで起きた。
昼は割と調子が良かったが夕刻から悪化するあたり、やはりバイオリズムは実在したのだ。

このエントリーをはてなブックマークに追加

花粉症ではなく風邪だった。しかも私が最も苦手とする喉が痛むタイプ。節々も痛い。
朝、熱を測ると36.4度。平熱なんだが、測り方が不味いのかも知れない。あるいは平熱が低いのか。風邪を引いた時しか測った事無いので分からんけど、とにかく重要なのは数字ではなく私の身体感覚なので会社休んで1日寝てた。私は風邪をこじらせると死ぬ身なのでな。
→念のため今計ったら、37.8度。うむ、こうでなくては。つか上がってるし!やはり朝の測り方が失敗してたのか。

このエントリーをはてなブックマークに追加

喉が酷く痛い。
昨日の鯖の証明書がオレオレ証明書の場合にSSL接続失敗*1の件は
http://stackoverflow.com/questions/19517538/ignoring-ssl-certificate-in-apache-httpclient-4-3
http://stackoverflow.com/questions/2703161/how-to-ignore-ssl-certificate-errors-in-apache-httpclient-4-0
を参考にして突破、というか、なんというか。
ただし次はBASIC認証が通らないが、これは対抗側の設定が未という話もあってどっちが悪いのか分からぬ。
それにしてもApache HttpClientのAPIは変わり過ぎである。3→4で変わるのは許すが、4.2→4.3で大きく変わり、4.3→4.4でも変わるのは如何なものか。
それはともかく、目的の製品へのSSLは通るが、普通に
http://tv.yahoo.co.jp/listings/realtime/
とか
http://d.hatena.ne.jp/nekora/
にアクセスすると404で失敗するようになってしまった。ぐぬぬ。これは当面問題ないっちゃ無いが、潰さぬとヤバい時に破裂する予感がするので潰しておかねば。やはり検索したサンプルからだと危険だな。ちゃんとHttpClientのドキュメント読むか…。だが他所の謎プロダクトの連携は最初は動くサンプルから入る、そいつが俺のやり方。
 →読むまでも無く、HOSTヘッダがURLのホスト名と異なっていた事が原因だった。
でも風邪か花粉症か、風邪っぽい気がするので寝る。

*1:というか正しい動作ではある

このエントリーをはてなブックマークに追加

原因はJava 1.8になってSSLのデフォルトがTLS 1.2になった事が原因だった。
https://blogs.oracle.com/java-platform-group/entry/java_8_will_use_tls
それは鯖側にパッチがあったのでそれを当てたら直った。多分、クライアント側のJavaのコントロールパネルの詳細で「TLS1.2を使う」「TLS1.1を使う」のチェックを外しても直ると思われる。
が、まだ今度は別の失敗をする。

警告: post失敗 URL=略
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
at sun.security.ssl.Handshaker.processLoop(Unknown Source)
at sun.security.ssl.Handshaker.process_record(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:395)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:354)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
   (中略)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 22 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 28 more

これは鯖側の送ってきた証明書が怪しい、とJavaクライアントが切断している。実際、テスト用のオレオレ証明書なのでこの動作は正当。そういえばChromeもNET::ERR_CERT_AUTHORITY_INVALIDと言って警告出してくる。
鯖側の証明書をあらかじめJava Client側にインポートしておくか、http://www.java-samples.com/showtutorial.php?tutorialid=210
あるいは、オレオレ証明書チェックをやめるか http://trasis.jp/blog/lab/2008/07/%E8%87%AA%E5%89%8D%E8%AA%8D%E8%A8%BC%E5%B1%80%E3%81%AEssl%E3%82%B5%E3%83%BC%E3%83%90.html

http://d.hatena.ne.jp/t_marcus87/20140603/1401784117 (Apache HttpClient 4.3)
http://stackoverflow.com/questions/19517538/ignoring-ssl-certificate-in-apache-httpclient-4-3 (Apache HttpClient 4.4 )
で対応できそうだが、また明日。

このエントリーをはてなブックマークに追加

警告: post失敗 URL=https:略
javax.net.ssl.SSLException: Received fatal alert: close_notify
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:395)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:354)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)

https.protocols=TLSv1,SSLv3,SSLv2Hello
javax.net.debug=all

尚、Apache HttpClientではない
http://docs.oracle.com/cd/E16764_01/web.1111/b55520/ssl_client.htm
コード リスト 5-10 Java クラスのみを使用する一方向 SSL 認証 URL 発信 SSL 接続クラス
のサンプルでも同じ事象なので、実行環境が怪しいか。

このエントリーをはてなブックマークに追加

なるお菓子を食す。
う、うむ…粉がレアチーズケーキっぽい味だ…。
なので一瞬だけレアチーズケーキ味がして後はいつものハッピーターン
やはりハッピーターンにはちょっと塩っぽい方が合うようだ。

このエントリーをはてなブックマークに追加

 HAGANEと読むらしい。悪の秘密結社「赤い海」の手先の医師に幼い頃から怪しい注射をされまくり、宮本武蔵に寄生された女子高生の話。寄生されると彼らの力を得るがそのうち意識も乗っ取られる危険。他の仲間にビリー・ザ・キッドに寄生されたのとか、御船千鶴子に寄生された奴が居る。で彼女が「赤い海」の追手と戦い始める抜け忍話。似た設定のアニメ最近見たな…ノブナガン(1) (アース・スターコミックス)
 重機甲兵ゼノンの後日談らしく、トウノらしき悪社長とか、老けた郷田先輩と思われる隻眼の紳士が登場する…ってことは叶飛鳥は敗れたのか。そいえば重機甲兵ゼノン 4 (アッパーズKC)の書下ろしの粗筋漫画ではそんな感じに見えなくもない…。
 いやしかし、X-777 重機甲兵(と書いてバイオダイバーと読む)ゼノンさんが勝てなかった相手に、宮本武蔵ビリー・ザ・キッドでは全く話にならないのでは…。デーモンズ・トライアングルのMPに瞬殺されそう。
 それにしても絵柄が変わったな…。

鋼 1―Hagane (アッパーズKC)鋼 1―Hagane (アッパーズKC)
神崎将臣

講談社 1998-11
売り上げランキング :

Amazonで詳しく見る
by G-Tools

このエントリーをはてなブックマークに追加

が売られ始めてたので忘れない内に買った。「高橋書店 2015年版手帳(4月始まり) ウィークメモ付きダイアリー A5 No.904」ってやつ。
私の場合、ここ数年の仕事柄、予定表よりも日々の記録が重要であり故に日記帳となる。そうは言ってもスケジュールも必要であ り、実は色的には「能率 2015年版手帳 NOLTY メモリー3(ブルー) 7132」の方が微妙にカラフルで好きでありまた巻末のノートの枚数が多い点も良いのだが、惜しむらくは月間スケジュール頁が前にまとまっておらず、毎月の始まりのページに付いているので使いずらい、というか使えない。そもそもおそらく本来はここは予定ではなく日記のサマリを記入する意図で作られているのではなかろうか。
その点「高橋書店 2015年版手帳(4月始まり) ウィークメモ付きダイアリー A5 No.904」は前にまとまっていて予定表に使えるので別途スケジュール帳を持つ必要が無くカバンの中身が一つ削減されるという寸法である。日記帳重いからな。
そいえばこういうA5の手帳って、見開き左ページが一週間分の日付で横に7分割されていて、右が普通のノートのようになっているタイプが非常に多いのだが、あれはどう使うものなのだろうか。

ウイークメモ付きダイアリー 4月始まり(No.904) 2014年ウイークメモ付きダイアリー 4月始まり(No.904) 2014年

高橋書店 2014-02-11
売り上げランキング : 731876

Amazonで詳しく見る
by G-Tools

このエントリーをはてなブックマークに追加

 アクセサとは言え、私に黙って密かにソースに無いメソッドを作る奴は好かぬのだが、今回はJacksonに使わせるJavaBeanを色々作らねばならぬ上に、メンバー名は割と手探りというか結構調べながら変更する事が多く、メンバ名を変えてアクセサのメソッド名を変えて、toString中の変数名も変えて…となりこれが中々の手間でミスが起こる予感がするので使う。
 しかし「もうメンバ変数をpublicで万事解決じゃね?」と思ったりしなくも無い…(Jackson側はpublicメンバーでもBeanでも大丈夫)。

このエントリーをはてなブックマークに追加

先日来、JSONへのシリアライズは出来るのだがJSONからのデシリアライズ実行時に以下のエラーで失敗してた件。

com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class json.example3.Person$Value]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)
at [Source: java.io.BufferedReader@1ebec15; line: 1, column: 37] (through reference chain: json.example3.Person["values"]->java.util.ArrayList[0])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1080)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:295)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:142)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:240)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:212)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:25)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:523)
at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101)
at com.fasterxml.jackson.databind.deser.impl.BeanPropertyMap.findDeserializeAndSet(BeanPropertyMap.java:285)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:248)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:136)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3562)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2625)
at json.example3.Main.main(Main.java:25)

Beanのメンバーがクラスの配列やクラスのリストの時に起きるんだが、結局、リストや配列に使われてるクラスをBeanの内部クラスにしないで独立した普通の外部クラスにしたらあっさり解決。
Jacksonがクラス情報取れないが故だと思うので、何かアノテーションとかTypeReference等を駆使すれば解決できそうな気がしないでも無いがまぁ良いわ。

このエントリーをはてなブックマークに追加

↑このページのトップヘ