簡體   English   中英

Ledger API入門

[英]Getting Started with the Ledger API

我正在通過Digital Asset Ledger API入門 我很謹慎地遵循將Maven配置為與數字資產存儲庫一起使用的指示信息創建ping-pong-java項目,並使用“ maven”進行編譯並運行“ sandbox”,但沒有出現問題。 但是,輸入:

mvn exec:java

導致以下輸出:

[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Building example-ping-pong-grpc-java 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- exec-maven-plugin:1.6.0:java (default-cli) @ example-ping-pong-grpc-java ---
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[WARNING] 
java.lang.RuntimeException: Module PingPong is not available on the ledger
    at examples.pingpong.PingPongMain.detectPingPongPackageId (PingPongMain.java:194)
    at examples.pingpong.PingPongMain.main (PingPongMain.java:63)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:564)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:282)
    at java.lang.Thread.run (Thread.java:844)
[WARNING] thread Thread[grpc-default-worker-ELG-1-1,5,examples.pingpong.PingPongMain] was interrupted but is still alive after waiting at least 15000msecs
[WARNING] thread Thread[grpc-default-worker-ELG-1-1,5,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] thread Thread[grpc-default-executor-0,5,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] thread Thread[ObjectCleanerThread,1,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] thread Thread[grpc-default-worker-ELG-1-2,5,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] thread Thread[grpc-default-worker-ELG-1-3,5,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] thread Thread[grpc-default-worker-ELG-1-4,5,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] thread Thread[grpc-default-worker-ELG-1-5,5,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] thread Thread[grpc-default-worker-ELG-1-6,5,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] thread Thread[grpc-default-worker-ELG-1-7,5,examples.pingpong.PingPongMain] will linger despite being asked to die via interruption
[WARNING] NOTE: 9 thread(s) did not finish despite being asked to  via interruption. This is not a problem with exec:java, it is a problem with the running code. Although not serious, it should be remedied.
[WARNING] Couldn't destroy threadgroup org.codehaus.mojo.exec.ExecJavaMojo$IsolatedThreadGroup[name=examples.pingpong.PingPongMain,maxpri=10]
java.lang.IllegalThreadStateException
    at java.lang.ThreadGroup.destroy (ThreadGroup.java:776)
    at org.codehaus.mojo.exec.ExecJavaMojo.execute (ExecJavaMojo.java:321)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:564)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.860 s
[INFO] Finished at: 2019-02-25T15:45:02-05:00
[INFO] Final Memory: 12M/57M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project example-ping-pong-grpc-java: An exception occured while executing the Java class. Module PingPong is not available on the ledger -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我按照錯誤消息http://www.slf4j.org/codes.html#StaticLoggerBinder中的鏈接進行操作,並顯示以下內容:

Failed to load class org.slf4j.impl.StaticLoggerBinder
This warning message is reported when the org.slf4j.impl.StaticLoggerBinder class could not be loaded into memory. This happens when no appropriate SLF4J binding could be found on the class path. Placing one (and only one) of slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar on the class path should solve the problem.

SINCE 1.6.0 As of SLF4J version 1.6, in the absence of a binding, SLF4J will default to a no-operation (NOP) logger implementation.

If you are responsible for packaging an application and do not care about logging, then placing slf4j-nop.jar on the class path of your application will get rid of this warning message. Note that embedded components such as libraries or frameworks should not declare a dependency on any SLF4J binding but only depend on slf4j-api. When a library declares a compile-time dependency on a SLF4J binding, it imposes that binding on the end-user, thus negating SLF4J's purpose. 

我不知道該怎么辦。 我只想按照本教程來了解API分類帳。 我沒有Java或Maven的經驗,我也不打算學習它們,因為我的Ledger應用程序需要用PHP編寫。 我該怎么辦才能解決此錯誤?

我認為紅色堆棧跟蹤有點像紅色鯡魚,重要的消息是從examples.pingpong.PingPongMain.detectPingPongPackageId (PingPongMain.java:194)拋出的RuntimeException-表示Java代碼找不到DAML。應該加載到分類帳(沙箱)中的模型代碼。 您運行da sandbox嗎? 再試一次,確保沙箱正在運行。 還要檢查您的da.yaml以確保它在那里,並且看起來像這樣:

project:
  sdk-version: 0.11.3
  name: PingPongExample
  source: daml/PingPong.daml
  parties:
  - Alice
  - Bob
version: 2

如果您的分類帳服務器(沙盒)正常運行,則應該在終端上看到此打印:

paul:ping-pong-java$ da sandbox
[Info] Starting:
    Sandbox ledger server /Users/paul/dev/ping-pong-java/daml/PingPong.daml
    with no scenario and binding to port 7600

2019-02-26 14:14:50.09 [DEBUG]  [package]  []  [DA.Service.Daml.Compiler.Impl.Handle:245] 
Creating dar: /Users/paul/dev/ping-pong-java/daml/PingPong.daml

2019-02-26 14:14:50.09 [DEBUG]  [package]  []  [DA.Service.Daml.Compiler.Impl.Handle:171] 
Setting files of interest to: [AbsoluteFilePath {getRawFilePath = "/Users/paul/dev/ping-pong-java/daml/PingPong.daml"}]

2019-02-26 14:14:50.09 [INFO]   [package]  [] 
Starting shakeRun (aborting the previous one took 0.00s)

2019-02-26 14:14:50.09 [DEBUG]  [package]  []  [DA.Service.Daml.Compiler.Impl.Handle:217] 
Compiling: /Users/paul/dev/ping-pong-java/daml/PingPong.daml

2019-02-26 14:14:50.09 [INFO]   [package]  [] 
Finishing shakeRun (took 0.00s, exception)

2019-02-26 14:14:50.09 [INFO]   [package]  [] 
Starting shakeRun (aborting the previous one took 0.00s)

2019-02-26 14:14:51.17 [INFO]   [package]  [] 
Finishing shakeRun (took 1.08s, completed)

2019-02-26 14:14:51.17 [INFO]   [package]  [] 
Starting shakeRun (aborting the previous one took 0.00s)

2019-02-26 14:14:51.17 [INFO]   [package]  [] 
Finishing shakeRun (took 0.00s, completed)
Created /Users/paul/dev/ping-pong-java/target/PingPongExample.dar.
Created /Users/paul/dev/ping-pong-java/target/ghc-prim.dalf.
Waiting for Sandbox.......ok

我假設您正在運行最新版本的SDK(0.11.3)。 如果不是,請升級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM