Java CDI в функциях Azure - PullRequest
0 голосов
/ 23 ноября 2018

Я работаю над проектом Java, который выполняется в функциях Azure.Проблема в том, что я не могу заставить Java CDI 2.0 работать в приложении.

Пожалуйста, обратитесь к кодам приложения ниже.

Function.java

public class Function {

@Inject
private Util util;

/**
 * This function listens at endpoint "/api/HttpTrigger-Java". Two ways to invoke it using "curl" command in bash:
 * 1. curl -d "HTTP Body" {your host}/api/HttpTrigger-Java&code={your function key}
 * 2. curl "{your host}/api/HttpTrigger-Java?name=HTTP%20Query&code={your function key}"
 * Function Key is not needed when running locally, to invoke HttpTrigger deployed to Azure, see here(https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook#authorization-keys) on how to get function key for your app.
 */
@FunctionName("HttpTrigger-Java")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request,
        final ExecutionContext context) {
    context.getLogger().info("Java HTTP trigger processed a request.");

    // Parse query parameter
    String query = request.getQueryParameters().get("name");
    String name = request.getBody().orElse(query);

    util.display();

    if (name == null) {
        return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body("Please pass a name on the query string or in the request body").build();
    } else {
        return request.createResponseBuilder(HttpStatus.OK).body("Hello, " + name).build();
    }
}
}

Util.java

@RequestScoped
public class Util {

public void display(){
    System.out.println("testing..");
}

}

У меня есть это в моем pom.xml

        <dependency>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

, когда я развертываю это и достигаю конечной точки, я получаю нулевое исключение при доступе к методу из введенногобоб ..

Может ли кто-нибудь просветить меня по этому вопросу?

...