2011-12-10 3 views
2

私は、PlayフレームワークアプリケーションでGAEプラグインを使用していますが、正常に動作します。また、私は外部のデータベースにアクセスするためにMySQLのドライバを使用しています。私はGAEで自分のアプリケーションをアップロードしていたら、MySQLのドライバは、作業を開始することはできません。GAEアプリケーションから外部mysqlデータベースを使用するmysqlドライバを使用

実行例外 のNoClassDefFoundErrorが発生しました:java.security:によって引き起こさクラスcom.mysql.jdbc.ConnectionImpl

を初期化できませんでした.AccessControlException:アクセスが拒否されました(java.lang.RuntimePermission modifyThreadGroup)

GAEは別のスレッドでMySQLドライバを動作させることをサポートしていませんか?

答えて

3

アプリエンジンでは、ソケットを開くことができません。これが、あなたのJDBCドライバが失敗している理由です。

いくつかの他のオプションは、あなたが考えることができますがあります:

  • 使用のApp Engineが提供するホストSQLストレージ用

    • 使用GAEビッグ表は、あなたが必要な場合は
    • (これは、MySQLと同様です)何らかの理由で外部MySQLを使用している場合は、データ呼び出し用のHTTPラッパーを作成し、urlフェッチサービスを使用してアプリケーションエンジンから呼び出す必要があります。

    また、彼はアプリケーションエンジンのフレームワークをサポートしています:http://www.playframework.org/documentation/1.0/gae

  • +1

    私はBigTableを使って自分のアプリケーションのオブジェクトだけを保存しています。しかし、私のアプリケーションはMySqlデータベースで動作する必要があります。SELECTデータだけです。 10Gbを超えるMySqlデータをBigTableにインポートすることはできません。インポートが完了すれば、本当のmysqlデータベースとの同期は非常に難しくなります。 GAEアプリケーションがWEBサービスまたはWEBサービスクライアントの場合、なぜソケットを開くことができないのですか? –

    +0

    @ user975287 GAEには制限があり、Googleに苦情を申し立てています:) jdbcソケットはブラックリストに登録されているため開けません。 HTTPリクエストのみが可能です。 GAEはあなたのプロジェクトの良いプラットフォームではないと私は信じています。 –

    +0

    あなたのアプリがアプリケーションエンジン上で動くようにしたい場合は前に言ったようにmysqlの周りにwebserviceを構築し、gaeから呼び出すか、大きなテーブルにmysqlのデータをインポートしてください –

    関連する問題