2010年9月7日火曜日

IE6,7で、SSL経由のファイルダウンロードがうまくできない。

IE6,7で、SSL経由で、PDF等のファイルをダウンロードしようとすると、
「Internet Explorerでは、xxxxをダウンロードできません。
 ファイルをキャッシュに書き込めませんでした」
というエラーが発生した。
(FireFox等では、問題なく見ることができる)

色々調べて見ると、結論として、ヘッダーが
Cache-Control : no-cache
Pragma : no-cache
となっていると駄目みたい。

対応としては、上記のヘッダーでno-cahce以外を指定してやれば解決。

JSP/Servletの場合は、こんな感じ
response.setHeader( "Cache-Control", "private, max-age=1" );
response.setHeader( "Pragma", "private" );

2010年4月22日木曜日

記事(openGionの技術解説 JavaからOpenOfficeを制御する)を公開しました。

題名通り。

記事へのリンク → ここ

サーバーサイトでのOpenOfficeの利用はかなり面白いと思う。
前に紹介したopenmeetingsも、ExcelやPowerPointをPDFに変換するところまでは、OpenOfficeを利用している。

マルチスレッド処理には問題があるけど、回避方法はあるので、結論として、パフォーマンスの問題は大丈夫そう。

クライアントサイドでの利用は、"いまさら"なので、これからは、ドキュメント編集・変換サービスのツールとして、もっと普及していけば面白いなぁと思う。

2010年4月15日木曜日

openGionのTipsを編集中

openGionのTipsをがんばらない程度に編集中。。。

ここから見れます。

もし、興味のある方はどうぞ。。。


# それにしても、ドキュメントの作成は(精神的に)結構大変。

2010年4月9日金曜日

JAX-WSベースのクライアントから、RubyなWebサービスに繋ぐ

Java6から追加された JAX-WS(Java API for XML-Based Web Services) をベースとしたクライアントから、Rubyで構築されたWebサービスに繋ぐと、見事にExceptionが吐かれた。

調べてみると、原因は、Content-typeのcharset。

クライアントから送信される際のcharsetは、
charset:"utf8"
となっている。

一方、ruby側は、大文字の「UTF-8」しか受け付けてくれない模様。

さらに、JAX-WSのあたりを調べてみると、charsetはソース直書きの固定(外から設定しても、最終的に全て置き換えられる)ので、どうしようもない。

結局、URLConnectionオブジェクトを作って、SOAPActionやら、Envelopを自前で作って接続。→あっさり接続できた。

# SOAPは、以外と実装言語ごとに微妙に送信/受信の仕様が異なることが多い。。
# やっぱりRESTの方が単純だし、こっちの方がいいな。。

JavsScript : 文字列をJSONオブジェトに変換する

PlainTextをJSONオブジェクトに変換する方法

var json = eval( "(" + str + ")" )

JSON形式の文字列(str)を()で囲った上で、eval()すれば、jsonオブジェクトとして変換される。

以上!

jQueryからJSP/ServletなページにAjaxリクエストを投げると日本語が文字化けする。

結構はまりました。

JSP側は、
<jsp:directive.page language="java" contentType="text/html; charset=UTF-8" />
という状態で、jQueryから
$.ajax({...})
すると文字化け。

正確には、GETの場合は、IE、Firefox共に文字化けし、POSTの場合は、IEのみ文字化け。
Firebugで確認する限りでは、文字化けしていないみたい。

色々やってみると、$.ajax({...})のOptionで
,contentType: "application/x-www-form-urlencoded; charset=UTF-8"
と指定することで文字化けが解消された。

指定しない場合は、charsetの指定はされないようなので、これを明示することで解決。
# 何故わざわざ指定する必要があるのかは、ちょっと腑に落ちないけど。。

2010年3月18日木曜日

openmeetingsを使ってみた。

この概要は表示できません。投稿を閲覧するには ここをクリック してください。

2010年3月17日水曜日

openmeetingsをインストールしてみた。

openmeetingsは、一言で言うと無料の会議ソフト。
クライアントは、基本的にブラウザ + Flashなので、簡単に利用できる。
機能としては、音声+映像の通信はもちろんのこと、デスクトップ共有や、画面上でドキュメントの内容を共有したりできる。
後、会議の内容を動画として保存したりもできる。

openmeetings自体は、これまたOSSのFlashストリーミングサーバーのRed5上で動く。
実際動かしてみると、こんなのがOSSなのか、と思うぐらいすごい。

が、動かしてみるまでが大変。
公式なサイトも、GoogleCodeのページのページぐらいしか見当たらず。
ドキュメントもあんまりなし。
このあたりは、とってもOSSっぽい。

ということで、インストール方法のメモ。

前提環境 : Windows2003ServerR2

(1)インストールが必要なもの
①JRE(必須) バージョン:6 update 18
 このあたりから落としてインストール
②Red5(必須) バージョン:0.9.1 final
 ここからWindows版を落としてイントール
③openmeeting(必須) バージョン:1_1_r3087
 ここからopenmeetings_1_1_r3087.zipを落として、解凍
  ⇒webapps\openmeetingsを②のred5\webapps\以下にばっさりコピー
④MySQL(必須) バージョン:5.1.44
 このあたりからダウンロードしてインストール。
 インストール後、my.iniの以下の部分を書き換えて、サーバーのデフォルトの文字コードをUTF-8に変更しておく。
⑤OpenOffice.org(ファイル共有で必要) バージョン:3.2(JREなし)
 ここから落として、とりえあず、普通にインストール
⑥ImageMagic(ファイル共有?で必要) バージョン:6.6.0-6-Q16-windows-dll
 ここから落としてインストール
⑦SWF Tools(ファイル共有で必要) バージョン:0.9.0
 ここから落としてインストール
⑧GhostScript(ファイル共有で必要) バージョン:871w32full-gpl
 ここから落としてインストール
⑨Sox(会議の録画で必要) バージョン:14.3.0
 ここから落としてインストール(インストーラーがないので、C:\Program Files\の下にでも解凍)
⑩ffmpeg(会議の録画で必要) バージョン:22137
 ここ(直リンク)から落としてインストール(インストーラーがないので、C:\Program Files\の下にでも解凍)

で、次。
(2)各種設定
①MySQLの設定
 my.iniでデフォルトのエンコードをUTF-8に変更
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
②DBの作成
 openmeetingsという名前でDBを作成
mysql -u root -pXXXX
create database openmeetings default character set utf8;
③openmeetingsのDB接続先の設定
 Red5\webapps\openmeetings\conf\mysql_hibernate.cfg.xml を 同じ場所で hibernate.cfg.xml にリネームして以下の場所を変更
<property name="connection.username">root</property>
<property name="connection.password">XXXX</property>
④OpenOfficeをListenモードで起動
"C:\Program Files\OpenOffice.org 3\program\soffice.exe" -headless -accept="socket,host=127.0.0.1,port=8100;urp;StarOffice.ServiceManager"
⑤Red5の起動
 Red5\Red5.bat をダブルクリックして、Red5を起動

⑥openmeetingsのインストール
 インストール画面にアクセスして、openmeetingsのインストールを行う。
URL : http://[Server]:[Port]/openmeetings/install
 インストール画面で設定すべき項目は、次の通り。
  • UserData (管理者情報)
  • Organisation(Domains) (組織名)
  • SMTP-Server
  • SMTP-Server Port
  • Default Language
  • SWFTools Path (インストールパスを指定)
  • ImageMagick Path(インストールパスを指定)
  • FFMPEG Path(インストールパスを指定)
  • Sox Path(インストールパスを指定)
 最後にinstallボタンを押して、しばらく待てばインストール完了。
 インストールが完了すれば、以下のURLでアクセスすることができる。
URL : http://[Server]:[Port]/openmeetings

以上で終わりです。
使い方などは別の機会に。。。。