Curlアプレットが動かない時に開発者が疑うべきポイントとは?


Curlアプレットを開発し、実際にサーバーにおいて運用を開始しようと思うと、
さっきまでクライアント環境では動いていたのに、エラーが出てしまう、
というような場合は、以下の二つのファイルがサーバー側に正しく配置されているかどうかを疑ってみましょう。


・ライセンスファイル(curl-license-5.datなど)
・アクセス許可ファイル(curl-access.txt)


実行時のエラーで「このアプレットをロード中にエラーが発生しました。 」というメッセージがあれば、
プログラムのバグではなく、このサーバー側のファイル配置が不十分な可能性が高いです。
実際のエラーメッセージを挙げてケースごとに対処法を書いてみましたので、参考にしてください。


■前提条件
Curlアプレット start.curlhttp://hogehoge/application/ に配置した。


■エラーメッセージ ケース1
<エラー> - このアプレットをロード中にエラーが発生しました。
SyntaxError: http://hogehoge/ライセンス取得テスト/start.curl:3[1]: 既定のマニフェストをインポートできません:
Error: 'http://hogehoge/start.curl' アプレットはライセンス キーを取得できません。
HttpMissingFileException: 'http://hogehoge/curl-license-5.dat' を開いている間のステータスは 404 です。
HttpMissingFileException: 'http://hogehoge/application/curl-license-5.dat' を開いている間のステータスは 404 です。


【原因と対処法】
正しい位置にライセンスファイルが配置されていない可能性があります。
http://hogehoge/curl-license-5.dathttp://hogehoge/application/curl-license-5.dat
をそれぞれブラウザのアドレス欄に直接入力して、返却されるか確認してみましょう。


【ポイント】
ライセンスファイルは、ドメインの直下かアプレットと同じフォルダどちらかに配置する必要があります。


■エラーメッセージ ケース2
<エラー> - このアプレットをロード中にエラーが発生しました。
SyntaxError: http://hogehoge/start.curl:3[1]: 既定のマニフェストをインポートできません:
Error: 'http://hogehoge/start.curl' アプレットはライセンス キーを取得できません。
ZlibException: inflate の入力データが壊れています。


【原因と対処法】
ライセンスファイルの中身が壊れているか、内容が配置しているURLと異なっている可能性があります。
ライセンスを発行してもらった代理店などに、
申請時のURLと、配置しているサーバーのURLがあっているか確認してください。


■エラーメッセージ ケース3
<エラー> - このアプレットをロード中にエラーが発生しました。
SyntaxError: http://hogehoge/start.curl:3[1]: 既定のマニフェストをインポートできません:
OpaqueSecurityException: http リクエストまたは他のネットワーク接続を作成しようとしていたときに、
セキュリティ エラーが発生しました。


【原因と対処法】
アクセスファイル(curl-access.txt)が配置されていない可能性が高いです。
http://hogehoge/curl-access.txt をブラウザのアドレス欄に直接入力して、
返却されるか確認してみましょう。


【ポイント】
アクセスファイルは、出来る限りルート(この場合はhogehoge)の直下に置いてください。
ルートに置けない場合は、Curlアプレットがアクセスする全てのリソースと同レベルに配置する必要があります。
Curlアプレットがアクセスするサーブレットなども例外ではありません。)


ほかにも、リダイレクトやシングルサインオンホスティングなどの環境で、
上記のケースどおりやっても解決できない原因がある場合があります。
そういった場合は、サーバーの環境を確認した上で、
ライセンスを購入した代理店などに質問するのがよいかと思います。