2

Mochiweb を ejabberd mnesia データベースにリンクしようとしていますが、コントローラーで mnesia トランザクションを実行できません。mnesia トランザクションを使用せずにコントローラーをテストしたところ、正常に動作しました。start 関数内で application:start(mnesia) を使用しています。

ブラウザには「Internal server error」が表示され、Mochiweb のログには「=ERROR REPORT=== function_clause」が表示されます。1.) mnesia を Mochiweb で動作させる方法、または 2.) ejabberd の Web サーバーにプラグインできる優れたフレームワークの方法を知りたいです。

ありがとう!

4

3 に答える 3

1

Mochiweb のログからの残りのエラー メッセージはありますか?「function_clause」の後のビットがある場合は?

于 2009-10-15T10:57:37.763 に答える
0

PHP/SQLやRails/SQLのように機能すると思っていましたが、これを行うには、Mochiwebノードからejabberdノードにメソッドを呼び出すのが最善の方法のようです。

また、ejabberdと同じmnesiaデータベースに接続してMochiwebを起動すると、テーブルの一部が「修復」され、基本的にすべてが消去されることに気付きました。

誰かがこれについて何か意見を持っているなら(または私が完全にオフになっているなら)私に知らせてください。ありがとう!

于 2009-10-16T17:13:39.860 に答える
0

これは、コード内のエラーである必要があります。最後に mochiweb ソースを確認したとき、「ループ」関数が try キャッチ内にラップされていました。例外をキャッチした場合は、その例外のタイプをエラー ログに出力しました。あなたの場合、 function_clause 例外があります。

ループ関数を手動で呼び出してみるか、コードをさらに別の try catch でラップして、例外全体を確認できるようにしてください。解読できない場合は、質問に貼り付けてください。

于 2009-10-15T11:09:47.927 に答える