問題タブ [hyperledger-chaincode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Hyperledger Fabric: Java チェーンコードでエラーを返して fabrik-java-sdk クライアントに戻す方法
私の Java チェーンコード (Fabric 1.4.4 で実行されている) が、作成される新しいアセットが既に存在することを示すために例外をスローしたいとします。トランザクションを実行しているピア ノードに記録される問題またはエラー (この場合は、「コントラクト LL00001 は既に登録されています」) で RunTimeException をスローしています。
しかし、スタック トレースの後、エラーの説明や Java のエラー Exception への参照を含めずに、ピア ノードが 500 エラーとしてそれを返していることがわかります (そのエラーは言語に依存しないため、これは理にかなっています)。
クライアント Java アプリケーション (fabrik-java-sdk を使用) に記録されているもの:
したがって、チェーンコードに問題があったことはわかっていますが、何が問題なのかはわかりません。ユーザーに問題を表示できるように、エラーの種類と説明を取得するにはどうすればよいですか? ここで、ピア ノードに移動してログをチェックし、問題を確認する必要があります。
注: チェーンコード クラスで新しい org.hyperledger.fabric.contract.ContractInterface を拡張しています。
更新: ピア ノードはエラー例外 (org.hyperledger.fabric.shim.ChaincodeException) をログに記録し、ログに示されているように 500 応答でエラー メッセージ (「ドキュメントが見つかりませんでした」) を正しく返すようですが、このメッセージは表示されません。 Java SDK にアクセスする
編集:Java SDKのエラーのようです。Fabric の JIRA で JIRA の問題を作成しました: https://jira.hyperledger.org/browse/FABJ-508