我首先注册了接收器,如下所示:
app register --name mysink --type sink --uri file:///Users/swatikaushik/Downloads/kafkaStreamDemo/target/kafkaStreamDemo-0.0.1-SNAPSHOT.jar
然后我创建了一个流
stream create --definition “:myKafkaTopic > mysink" --name myStreamName --deploy
我收到了错误
Command failed org.springframework.cloud.dataflow.rest.client.DataFlowClientException: File
/Users/swatikaushik/Downloads/kafkaStreamDemo/target/kafkaStreamDemo-0.0.1-SNAPSHOT.jar must exist
虽然罐子存在!!
答案 0 :(得分:1)
我使用docker compose遵循了maven本地存储库挂载方法,希望对您有所帮助:
行家:
mvn clean install
设置环境变量:
$Env:DATAFLOW_VERSION="2.5.1.RELEASE"
$Env:SKIPPER_VERSION="2.4.1.RELEASE"
$Env:HOST_MOUNT_PATH="C:\Users\yourUserName\.m2"
$Env:DOCKER_MOUNT_PATH="/root/.m2/"
重新启动/启动容器:
docker-compose down
docker-compose up
注册您的应用:
app register --type sink--name mysink --uri maven://groupId:artifactId:version
答案 1 :(得分:0)
文件权限是一回事 - 请按照建议仔细检查。
其他一些想法:
1)运行app info sink:mysink
。如果JAR实际可用,则应返回应用程序的Boot / Whitelisted属性列表。
2)运行Jar独立。确保它实际上是通过java -jar....
启动的。
3)流定义似乎包含一个特殊字符(“:myKafkaTopic > mysink"
而不是":myKafkaTopic > mysink"
- 注意“
字符);它会在Shell中失败,但看起来你可以部署它。完整的堆栈跟踪会有所帮助。