我的目标是调试这段代码,以便按照教程中的建议实时查看它。
我的ide是visualstudio代码,这个例子的语言是java。我正在运行flink数据流api教程。
当我在任何一行设置断点时,会出现以下错误:
Cannot find a class with the main method in the folder 'frauddetection'.
我被暗示要创建一个launch.json文件,所以,这就是我创建的:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Debug (Launch) - Current File",
"request": "launch",
"mainClass": "FraudDetectionJob"
}
]
}
即使在配置上述文件并指定 mainClass
,我在调试器终端中得到相同的错误:
Error: Could not find or load main class FraudDetectionJob
我尝试执行的代码如下:
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package spendreport;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.walkthrough.common.sink.AlertSink;
import org.apache.flink.walkthrough.common.entity.Alert;
import org.apache.flink.walkthrough.common.entity.Transaction;
import org.apache.flink.walkthrough.common.source.TransactionSource;
/**
* Skeleton code for the datastream walkthrough
*/
public class FraudDetectionJob {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<Transaction> transactions = env
.addSource(new TransactionSource())
.name("transactions");
DataStream<Alert> alerts = transactions
.keyBy(Transaction::getAccountId)
.process(new FraudDetector())
.name("fraud-detector");
alerts
.addSink(new AlertSink())
.name("send-alerts");
env.execute("Fraud Detection");
}
}
如何调试此文件?
1条答案
按热度按时间af7jpaap1#
我相信你不能编译和运行这个应用程序。在你的
pom.xml
,这是问题的根源将范围更改为
compile
为了解决这个问题。另外,更多的技术信息在这里。--我是如何找到问题的--
我试着在教程中运行这个示例(在intellij idea中),得到了与您类似的错误:
在进一步的搜索中,我找到了这个相似的答案。