10

在为默认 IntelliJ IDEA Java helloworld 应用程序(在创建新的 AWS Lambda 项目时创建)设置调试配置时,将显示以下响应:

错误:在项目中找不到处理程序 'helloworld.App::handleRequest'。”

为了解决这个问题,我尝试在 template.yaml 中编辑“处理程序”元素以包含文件路径,但没有成功。

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: HelloWorldFunction
      Handler: helloworld.App::handleRequest

我注意到 Python AWS Lambda helloworld 项目(在 PyCharm 对应项中)要求我更改根项目文件夹(允许找到处理程序),但是,我似乎无法使用 IntelliJ 中的 Java 对应项来实现这一点。

默认项目文件结构如下:

bash
├── README.mdH
├── HelloWorldFunction 
│   ├── pom.xml    
│   └── src
│       ├── main
│       │   └── java
│       │       └── helloworld
│       │           ├── App.java
│       │           └── GatewayResponse.java  
│       └── test  
│           └── java
│               └── helloworld
│                   └── AppTest.java
└── template.yaml

template.yaml 文件的相关部分包含:

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: HelloWorldFunction
      Handler: helloworld.App::handleRequest
      Runtime: java8
      Events:
        HelloWorld:
          Type: Api
          Properties:
            Path: /hello
            Method: get

App.java 文件包含类

public class App implements RequestHandler<Object, Object> {
    ...
}

我希望调试配置指向正确的处理程序(是“helloworld.App::handleRequest”),这样我就可以在本地机器上运行项目。

4

1 回答 1

13

在项目文件上,右键单击HelloWorldFunction然后查找Mark directory as并选择Source Root. 那应该可以解决您的问题。

在此处输入图像描述

于 2019-04-10T17:46:50.667 回答