Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS Lambda与Java Spring_Java_Spring_Aws Lambda - Fatal编程技术网

AWS Lambda与Java Spring

AWS Lambda与Java Spring,java,spring,aws-lambda,Java,Spring,Aws Lambda,我正在尝试使用JavaSpring实现AWS Lambda服务。我已经通过了一系列的教程,这些教程告诉了我很多方法,但我无法让它发挥作用 我遇到的主要问题是AWS Lambda库要求类具有零arg构造函数,这使得使用Spring IOC容器非常困难。我发现它有一个解决方法,可以在创建之后将我的SpringBean注入到类中,但这种方法似乎不适用于从定义的接口(例如Spring数据存储库)创建的匿名类的bean实例化,这是我的应用程序使用的 我在AWS lambda库的Spring包装上找到了,但

我正在尝试使用JavaSpring实现AWS Lambda服务。我已经通过了一系列的教程,这些教程告诉了我很多方法,但我无法让它发挥作用

我遇到的主要问题是AWS Lambda库要求类具有零arg构造函数,这使得使用Spring IOC容器非常困难。我发现它有一个解决方法,可以在创建之后将我的SpringBean注入到类中,但这种方法似乎不适用于从定义的接口(例如Spring数据存储库)创建的匿名类的bean实例化,这是我的应用程序使用的

我在AWS lambda库的Spring包装上找到了,但这似乎也不起作用;我想我已经大致正确地从中复制了他们的代码,但是当我在Lambda上运行它时,我得到以下错误:

START RequestId: d9e62756-e72b-45f0-8df4-2164f3979dd7 Version: $LATEST
Failed to discover main class. An attempt was made to discover main class as 'MAIN_CLASS' environment variable, system property as well as entry in META-INF/MANIFEST.MF (in that order).: java.lang.IllegalStateException
java.lang.IllegalStateException: Failed to discover main class. An attempt was made to discover main class as 'MAIN_CLASS' environment variable, system property as well as entry in META-INF/MANIFEST.MF (in that order).
    at org.springframework.cloud.function.utils.FunctionClassUtils.getStartClass(FunctionClassUtils.java:83)
    at org.springframework.cloud.function.utils.FunctionClassUtils.getStartClass(FunctionClassUtils.java:60)
    at org.springframework.cloud.function.adapter.aws.FunctionInvoker.start(FunctionInvoker.java:104)
    at org.springframework.cloud.function.adapter.aws.FunctionInvoker.<init>(FunctionInvoker.java:70)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
启动请求ID:d9e62756-e72b-45f0-8df4-2164f3979dd7版本:$LATEST
未能发现主类。试图将main类作为“main_class”环境变量、系统属性以及META-INF/MANIFEST.MF中的条目(按该顺序)发现:java.lang.IllegalStateException
java.lang.IllegalStateException:未能发现主类。试图将main类作为“main_class”环境变量、系统属性以及META-INF/MANIFEST.MF中的条目(按该顺序)发现。
位于org.springframework.cloud.function.utils.FunctionClassUtils.getStartClass(FunctionClassUtils.java:83)
位于org.springframework.cloud.function.utils.FunctionClassUtils.getStartClass(FunctionClassUtils.java:60)
位于org.springframework.cloud.function.adapter.aws.FunctionInvoker.start(FunctionInvoker.java:104)
位于org.springframework.cloud.function.adapter.aws.FunctionInvoker.(FunctionInvoker.java:70)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
这是我的密码:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>JobsTest</artifactId>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-function-adapter-aws</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-events</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-core</artifactId>
            <version>1.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <configuration>
                    <createDependencyReducedPom>false</createDependencyReducedPom>
                    <shadedArtifactAttached>true</shadedArtifactAttached>
                    <shadedClassifierName>aws</shadedClassifierName>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

spring启动程序父级
org.springframework.boot
2.2.4.1发布
4.0.0
乔伯斯特
罐子
org.springframework.cloud
弹簧云功能适配器aws
3.0.2.1发布
亚马逊网站
aws lambda java事件
2.0.2
亚马逊网站
aws lambda java内核
1.1.0
假如
org.springframework.boot
spring引导配置处理器
真的
org.apache.maven.plugins
maven部署插件
真的
org.springframework.boot
springbootmaven插件
org.apache.maven.plugins
maven阴影插件
假的
真的
自动气象站
JobTestApplication.java(我正在使用一个示例PoC应用程序来尝试让这个该死的东西正常工作,然后我将逐一为它添加更多高级功能):

packagejobtest;
导入org.springframework.boot.SpringApplication;
导入org.springframework.boot.autoconfigure.springboot应用程序;
导入org.springframework.context.annotation.Bean;
导入java.util.function.function;
@SpringBoot应用程序
公共类JobTestApplication{
公共静态void main(字符串[]args){
run(JobTestApplication.class,args);
}
@豆子
公共函数大写(){
返回输入->“你好,世界!”;
}
}

有人能解释一下我做错了什么吗?我花了2天半的时间在这上面,我想不出来。谢谢。

我遇到了同样的问题。根据此链接,Spring Cloud Function 3.0.2版可能会解决您的问题。

我也遇到了同样的问题。根据此链接,Spring Cloud Function 3.0.2版可能会解决您的问题。

根据该教程和相关示例代码(在问题中链接),我不需要处理程序类。我确实找到了第三个教程(),上面说我找到了,但是,当我尝试它时仍然失败,出现了相同的错误IIRC。你解决过这个问题吗?根据该教程和相关的示例代码(在问题中链接),我不需要处理程序类。我确实找到了第三个教程(),上面说我找到了,但是,当我尝试它时,它仍然失败,错误与IIRC相同。你曾经解决过这个问题吗?尝试过,但仍然不起作用尝试过,仍然不起作用
package jobtest;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

import java.util.function.Function;

@SpringBootApplication
public class JobTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(JobTestApplication.class, args);
    }

    @Bean
    public Function<Object, String> uppercase() {
        return input -> "Hello World!";
    }
}