ブログを作る※無料・簡単アフィリ    ブログトップ | 楽天市場
029270 ランダム
日々、開発 (パソコン・家電)楽天ブログ 【ケータイで見る】 【ログイン】
日々、開発
ホーム 日記 プロフィール オークション 掲示板 ブックマーク お買い物一覧

PR

Free Space

ランキングに参加中
相互リンクとランキングプラス

Keyword Search

Let's link!

>お気に入りブログに追加
ブログが更新されると
メールでお知らせします

Rakuten Profile

設定されていません

Calendar

February 2012
SMTWTFS
   1234
567891011
12131415161718
19202122232425
26272829   
<backthis monthnext>

Favorite Blog

まだ登録されていません

Comments

コメントに書き込みはありません。

Mobile

>>ケータイに
このブログの
URLを送信!

Headline News

 

けぼりんの日記 [全48件]

2011.07.21楽天プロフィール Add to Google XML

java.util.zip.ZipException: Too many open files

tomcatのcatalina.outに
java.util.zip.ZipException: Too many open files
というエラーがでていた。

なんだろう?

開けるファイル数の制限に引っ掛かっているらしい。

tomcatの起動ユーザで
ulimit -n
1024

1024ファイルしか開けないらしい。

ulimit -n 4096
を実行して4096開けるようにしよう。

root
/etc/security/limits.conf
を編集して
username hard nofile 4096
usernameは、tomcatの起動ユーザ

tomcatの起動ユーザになって
ulimit -n 4096
あれ?エラーになっちゃう。


また、rootになって
/etc/pam.d/login

session required pam_limits.so
を追加した。

tomcatの起動ユーザでログインしなおして、
ulimit -n 4096

うまくいきました。

うーん。根本的な原因が解決していないようだけど、
とりあえず様子を見ることにしよう。








Last updated 2011.07.21 11:49:04



2011.06.09

SECOM セコムパスポートfor Web SR2.0 No trusted certificate found
[ Java ]  

とあるjavaプログラムを作りました。
(j2sdk1.4.2_12 OS:Linux)

とあるサーバ(以下、接続サーバ)へ、HttpURLConnectionで接続するだけ。

ただし、SSL。

ある日突然、
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
がでるようになった。

調べてみると、接続サーバのSSLを変えたそうだ。

SECOMのセコムパスポートfor Webから
セコムパスポートfor Web SR2.0へ。

いろいろ調べた結果、どうやら、javaプログラム側のルート
証明書が足らないようだ。

で、その設定

1.SECOMのセコムパスポートfor Webのルート認証局は、
Security Communication Root CA1なので、そのルート証明書を入手する。

セコムのHPを探したが、まったく解らず、セコムに電話して聞きました。


http://www.secomtrust.net/service/ninsyo/neforwebsr/9-sr20.html
のページの

「注意事項
IBM HTTP Server 6.0.2以上
Security Communication Root CA1証明書(ルートCA証明書)」

にあった。
http://www.secomtrust.net/service/ninsyo/cer/scrootca1.txt

解るか!

とりあえず、http://www.secomtrust.net/service/ninsyo/cer/scrootca1.txt
をダウンロード。

それを、javaプログラムにある場所(プログラムサーバ)にアップロード


2.ルート証明書が壊れていないか確認。

keytool -printcert -file scrootca1.txt

大丈夫なようだ。

本当は1回目は、アップロードが面倒だったので、
プログラムサーバにファイルを作り、viでコピーした。

そしたら、
keytool エラー: java.lang.Exception: 入力の構文解析に失敗しました。
という壊れているメッセージが出てしまった。
改行コードとか違うのかな?

でアップロードしなおしました。

3.登録

keytool -import -alias SecurityCommunicationRootCA1 -keystore $JAVA_HOME/jre/lib/security/cacerts -file scrootca1.txt
(-keystore スペース $JAVA_HOME です。)

パスワードを聞いてきた。

???パスワード???
設定した覚えないけど、

調べたら、デフォルトで

changeit

らしい。それを入力

この証明書を信頼しますか? [no]:

と聞かれるので、yes

うまくいきました。

本当は、もっと苦戦したけど・・・・・
$JAVA_HOME/jre/lib/security/cacerts
のパーミッションがrootだったので3はrootで実行。

しようとしたら、
keytoolのパスが通っていなくて、フルパスで実行
/usr/java/j2sdk1.4.2_12/bin/keytool -import -alias SecurityCommunicationRootCA1 -keystore /usr/java/j2sdk1.4.2_12/jre/lib/security/cacerts -file scrootca1.txt

な感じ。

4.確認
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -alias SecurityCommunicationRootCA1


5.実はこのプログラムはTOMCAT上で動いているので、
TOMCATを再起動したら、
No trusted certificate found
はでなくなりました。


めでたし。めでたし。


・・・・・つーか、接続サーバ側で勝手に変えるなよ

・・・とほほ


Last updated 2011.06.09 17:02:09

2010.12.21

twitterへの自動更新2 OAuth認証
[ twitter ]  

TwitterのAPIを使うためには、OAuth認証が必要

流れは、
1.リクエストトークンの取得
 アプリケーションを登録した際の、consumerkeyとconsumerSecretが必要。
 結果、oauth_tokenとoauth_token_secretが取得できる。

2.アプリケーションの認証
 登録したアプリケーションを、あるTwitterユーザが使ってよいかをTwitterユーザとして認証する。つまり、使われるTwitterApiはこのユーザのデータを使うことになる。
 1で取得した、oauth_tokenとoauth_token_secretを使う。
 結果、暗証番号が取得できる。

3.アクセストークンの取得
 アプリケーションを登録した際の、consumerkeyとconsumerSecretと
 1で取得したoauth_tokenとoauth_token_secretと2で取得した暗証番号を使う。
 結果、oauthTokenとoauthTokenSecretが取得できる。これは、リクエストトークンと同じ名前のパラメータであるが、値がリクエストトークン時のものと異なっているので注意。TwitterのAPIを使う時に必要になる。

以上。

はまった点
いかにも、TwitterのURLにURLパラメータくっつけて、ブラウザで叩けばいいのかという感じなのだが、HttpURLConnection#setRequestProperty("Authorization", ***);の***の部分にパラメータ=値のカンマ区切りをくっつけて送信する形になる。はまった。


で自作しようと頑張ったんだけど、以下のサイトを参照しました。
参照しました。
ありがとうございます。


Last updated 2010.12.21 10:30:44

2010.12.17

twitterへの自動更新1 アプリケーションの登録
[ twitter ]  

twitterへの自動更新を一から作ろう。

1.twitterアカウントの作成

手順は省略。
普通にアカウントを作る。

2.アプリケーションの登録

http://dev.twitter.com/apps/new/
で内容を入力

アプリケーション名:なんでもいいみたい。
アプリケーションの説明:機能や動作の概要。なんでもいいみたい。
アプリケーションのウェブサイトURL:特に一般に公開するつもりないので、なんでもいいみたい。
所属会社/団体:会社名でもいれますか。
アプリケーションの種類:今回は、クライアントアプリケーションでいいのかな。
標準のアクセスタイプ:クライアントアプリケーションにしたら消えちゃった。
標準のアクセスタイプ:書き込みたいので、Read&Write
アプリケーションのアイコン:なにも設定せず

で、ぐにゃぐにゃ文字を入れて

「アプリケーションを登録する」ボタン押下

で、そのままなすがままに進むと、
値が取れる画面に行きつく。

なにが必要が良くわからないので、全部コピーしておくか。


Last updated 2010.12.21 09:55:29

twitterへの自動更新
[ twitter ]  

あるデータをtwitter内へ自動書き込みする機能を作ることになった。

そんなようなアプリはいっぱい出回っているようだけど、
まあ、せっかくなので、一から作ってみようかなと。


Last updated 2010.12.17 11:53:15

2010.12.08

sshのパスワードの入力をどうにか
[ Linux ]  

あるシェルの引数に二つの引数を取得し、
その2つの値をsshのログインIDおよびパスワードにしたい。

よくある、「sshのパスワードを入力しなくても・・・」での解答は、
「鍵交換方式」だと思います。

でもそうじゃなくて、ログインIDおよびパスワードは入力させたい。
ただし、sshが受け付ける標準入力でなくて、そのsshを起動するシェルスクリプトの
引数として渡したい。

でその実現。

調べてみるとexpectを使えばできるらしい。

えーと。
webサーバに入っているかな?

>which expect 
とりあえず、パスが通っているところには無いらしい。
> man expect
マニュアルはあるぞ!

で、探したけど、インストールされていない。
インストールするかぁ。

以下rootユーザでやりました。

1.ダウンロード
expectとtclをダウンロード

expect
http://sourceforge.jp/projects/sfnet_expect/releases/
でexpect5.45.tar.gzをダウンロード

tcl
http://sourceforge.jp/projects/sfnet_tcl/releases/
でtcl8.5.9-src.tar.gzをダウンロード

2.解凍して
>tar xfvz expect5.45.tar.gz
>tar xfvz tcl8.5.9-src.tar.gz

3.tclをインストール
>cd tcl8.5.9/unix
>./configure -enable-shared -prefix=/usr
>make
>make install

で/usr/bin/tclsh8.5 に対して/usr/bin/tclshからのシンボリックリンクを張る。
>ln -s tclsh8.5 tclsh
う?
/usr/bin/tclsh8.4があった
/usr/bin/tclshも/usr/bin/tclsh8.4にリンクが張られていた。
うーん。どうしましょ。
そのままほっときましょ。

4.expectをインストール
>cd expect5.45
>./configure -with-tclinclude=tclをインストールしたパス/tcl8.5.9/generic -prefix=/usr
>make
>make install

で動的ライブラリの更新
/sbin/ldconfig

5.使ってみる。
こんなshを作ってみた。(test.sh)
リモートのサーバにログインしてlsを実行するだけ。

#!/bin/sh

HOST=適切なIPアドレス
USER=$1
PASS=$2
RCOMMAND=ls
expect -c "
set timeout 20
spawn ssh $USER@$HOST
expect password:\ ; send \"$PASS\r\"
expect \"$ \" ; send \"$RCOMMAND\r\"
expect \"$ \" ; send \"exit\r\"

6.実行しました。
>test.sh hogeuser hogepassword
うまく行きました。

ちなみに、初めてログイン元からログイン先へ初めてsshでログインする場合は、
セキュリティのどうのこうのという質問が来るので、
5のshでは少々不足であるが、まあ省略。
一回普通にsshでログインすればいいからね。


Last updated 2010.12.08 10:58:48

2010.11.17

googleの検索結果が異なる
[ SEO ]  

googleで自分のサイトの順位を検索していると、
パソコンのよって検索順位が違っている。

当然、自分のパソコンは、自分のサイトをちょいちょい見ているから
検索結果は上位に来てしまう。

実際、何位なんだか・・・

どうもgoogleはcookieを使って、そのあたりを制御しているみたい。

そこで、その制御をなしにします。
要はgoogleのcookieを受け入れなくすればよい。

IEなら、ツール->インターネットオプション->プライバシー->サイト
でgoogle.co.jpをブロックすれば良い。

やってみた。
検索結果が変わった。

うーん。
このgoogleの機能は、便利なのか、そうでないのか?
自分のよく見ているサイトが上位に来るということは、
新しいサイトに出会う可能性を下げているのでは?




Last updated 2010.11.17 10:02:50

一覧

Powered By 楽天ブログは国内最大級の無料ブログサービスです。楽天・Infoseekと連動した豊富なコンテンツや簡単アフィリエイト機能、フォトアルバムも使えます。デザインも豊富・簡単カスタマイズが可能!

Copyright (c) 1997-2012 Rakuten, Inc. All Rights Reserved.