在 AWS Lambda 中运行时,Spring Boot 应用程序抛出

我只是尝试使用以下文章在 AWS Lambda 上运行 Spring Boot 应用程序:https : //github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Spring-Boot


基本请求工作正常,但发送文件似乎会导致问题。在本地运行应用程序工作正常:


@RestController

@EnableWebMvc

public class PingController {

    @RequestMapping(path = "/ping", method = RequestMethod.GET)

    public Map<String, String> ping() {

        Map<String, String> pong = new HashMap<>();

        pong.put("pong", "Hello, World!");

        return pong;

    }


    @RequestMapping(path = "/ping", method = RequestMethod.POST)

    public Map<String, Long> ping(@RequestParam("file") MultipartFile file) {

        Map<String, Long> pong = new HashMap<>();

        pong.put("filesize", file.getSize());

        return pong;

    }

}

/ping 上的 GET 会按预期返回有效消息:


{

    "pong": "Hello, World!"

}

向包含图像的 /ping 发送 POST 会导致以下异常:


{

    "timestamp": 1540237302941,

    "status": 500,

    "error": "Internal Server Error",

    "exception": "org.springframework.web.multipart.MultipartException",

    "message": "Could not parse multipart servlet request; nested exception is java.lang.IllegalArgumentException: File path not allowed: /image.jpeg",

    "path": "/ping"

}

将以下行添加到application.properties文件中没有帮助:


spring.http.multipart.location=/tmp/

甚至指定的资源是否存在都无关紧要。POST 到 /ping2(不存在)会导致相同的异常。


眼眸繁星
浏览 153回答 1
1回答

ibeautiful

这是亚马逊图书馆中的一个错误,几天前已修复。可在此处获得更多信息。只要确保使用 1.2 或更高版本:<dependency>&nbsp; &nbsp; <groupId>com.amazonaws.serverless</groupId>&nbsp; &nbsp; <artifactId>aws-serverless-java-container-spring</artifactId>&nbsp; &nbsp; <version>1.2</version></dependency>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java