私はまだJavaEEの経験が浅いです。私はプロトタイプを作成しようとしていて、1週間でできる限り多くのことを学びましたが、今は本当に行き詰まっています。
AndroidアプリケーションからPOSTを介してjsonオブジェクトを送信し、そのコンテンツをデータベースに追加します。リクエストは、データを抽出し、新しいエンティティを作成してデータを入力するサーブレットを介して受信されます。次に、保存関数を呼び出すメッセージ駆動型Beanにエンティティを送信します。publicvoid save(Object object){em.persist(object); em.flush(); サーブレットは、jms/Queueキューを介してエンティティを送信します。
問題:アプリケーションをデプロイしてリクエストを送信した後、データベースに情報を挿入しようとしますが(実行します)、これを試行し続けているように見え、コンソールに次の情報が入力されます。
WARNING: Local Exception Stack
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '2012/03/14-AAAA' for key 'PRIMARY'
Error Code: 1062
私の考えでは、メッセージがキューから適切に削除されていないか、メッセージの送信を継続することを決定した場所にある可能性があります。そうではないと思いますが、EntityManagerがどのように機能するかは完全にはわかりません。すべてを除いて、どのコードを含めるべきか本当にわかりません。
どんな助けでも素晴らしいでしょう、私は本当にピンチにいます!
ありがとう、ダン
編集:MySQLデータベースとGlassfishサーバーを使用します。