This is the Dapr SDK for Java, including the following features:
For a Maven project, add the following to your pom.xml
file:
<project>
...
<repositories>
...
<!-- BEGIN: Dapr's repositories -->
<repository>
<id>oss-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
<repository>
<id>oss-release</id>
<url>https://oss.sonatype.org/content/repositories/releases/</url>
</repository>
<!-- END: Dapr's repositories -->
...
</repositories>
...
<dependencies>
...
<!-- Dapr's core SDK with all features, except Actors. -->
<dependency>
<groupId>io.dapr</groupId>
<artifactId>dapr-sdk</artifactId>
<version>1.0.2</version>
</dependency>
<!-- Dapr's SDK for Actors (optional). -->
<dependency>
<groupId>io.dapr</groupId>
<artifactId>dapr-sdk-actors</artifactId>
<version>1.0.2</version>
</dependency>
<!-- Dapr's SDK integration with SpringBoot (optional). -->
<dependency>
<groupId>io.dapr</groupId>
<artifactId>dapr-sdk-springboot</artifactId>
<version>1.0.2</version>
</dependency>
...
</dependencies>
...
</project>
For a Gradle project, add the following to your build.gradle
file:
repositories {
...
// Dapr repositories
maven {
url "https://oss.sonatype.org/content/repositories/snapshots"
mavenContent {
snapshotsOnly()
}
}
maven {
url "https://oss.sonatype.org/content/repositories/releases/"
}
}
...
dependencies {
...
// Dapr's core SDK with all features, except Actors.
compile('io.dapr:dapr-sdk:1.0.2')
// Dapr's SDK for Actors (optional).
compile('io.dapr:dapr-sdk-actors:1.0.2')
// Dapr's SDK integration with SpringBoot (optional).
compile('io.dapr:dapr-sdk-springboot:1.0.2')
}
Clone this repository including the submodules:
git clone https://github.com/dapr/java-sdk.git
Then head over to build the Maven (Apache Maven version 3.x) project:
# make sure you are in the `java-sdk` directory.
mvn clean install
Try the following examples to learn more about Dapr's Java SDK:
Please, refer to our Javadoc website.
The Java SDK for Dapr is built using Project Reactor. It provides an asynchronous API for Java. When consuming a result is consumed synchronously, as in the examples referenced above, the block()
method is used.
The code below does not make any API call, it simply returns the Mono publisher object. Nothing happens until the application subscribes or blocks on the result:
Mono<Void> result = daprClient.publishEvent("mytopic", "my message");
To start execution and receive the result object synchronously(void
or Void
becomes an empty result), use block()
. The code below shows how to execute the call and consume an empty response:
Mono<Void> result = daprClient.publishEvent("mytopic", "my message");
result.block();
This SDK provides a basic serialization for request/response objects but also for state objects. Applications should provide their own serialization for production scenarios.
DaprClient client = (new DaprClientBuilder())
.withObjectSerializer(new MyObjectSerializer()) // for request/response objects.
.withStateSerializer(new MyStateSerializer()) // for state objects.
.build();
ActorRuntime.getInstance().registerActor(
DemoActorImpl.class,
new MyObjectSerializer(), // for request/response objects.
new MyStateSerializer()); // for state objects.
try (ActorClient actorClient = new ActorClient()) {
DemoActor actor = (new ActorProxyBuilder(DemoActor.class, actorClient))
.withObjectSerializer(new MyObjectSerializer()) // for request/response objects.
.build(new ActorId("100"));
}
In IntelliJ Community Edition, consider debugging in IntelliJ.
In Visual Studio Code, consider debugging in Visual Studio Code.
If you need to debug your Application, run Dapr sidecar separately and then start the application from your IDE (IntelliJ, for example). For Linux and MacOS:
dapr run --app-id testapp --app-port 3000 --dapr-http-port 3500 --dapr-grpc-port 5001
Note: confirm the correct port that the app will listen to and that the Dapr ports above are free, changing the ports if necessary.
When running your Java application from IDE, make sure the following environment variables are set, so the Java SDK knows how to connect to Dapr's sidecar:
DAPR_HTTP_PORT=3500
DAPR_GRPC_PORT=5001
Now you can go to your IDE (like Eclipse, for example) and debug your Java application, using port 3500
to call Dapr while also listening to port 3000
to expose Dapr's callback endpoint.
Most exceptions thrown from the SDK are instances of DaprException
. DaprException
extends from RuntimeException
, making it compatible with Project Reactor. See example for more details.
Change the properties below in pom.xml to point to the desired reference URL in Git. Avoid pointing to master
branch since it can change over time and create unpredictable behavior in the build.
<project>
...
<properties>
...
<dapr.proto.url>https://raw.githubusercontent.com/dapr/dapr/v1.0.0/pkg/proto/dapr/dapr.proto</dapr.proto.url>
<dapr.client.proto.url>https://raw.githubusercontent.com/dapr/dapr/v1.0.0/pkg/proto/daprclient/daprclient.proto</dapr.client.proto.url>
...
</properties>
...
</project>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。