alexa / alexa-skills-kit-sdk-for-java

The Alexa Skills Kit SDK for Java helps you get a skill up and running quickly, letting you focus on skill logic instead of boilerplate code.
http://developer.amazon.com/ask
Apache License 2.0
816 stars 746 forks source link

SDK 2.0: Missing Jackson-databind import #90

Closed janknobloch closed 6 years ago

janknobloch commented 6 years ago

When using framework 2.2 with the following dependencies:


<dependency>
            <groupId>com.amazon.alexa</groupId>
            <artifactId>ask-sdk</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.amazon.alexa</groupId>
            <artifactId>ask-sdk-core</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.amazon.alexa</groupId>
            <artifactId>ask-sdk-lambda-support</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.amazon.alexa</groupId>
            <artifactId>ask-sdk-dynamodb-persistence-adapter</artifactId>
            <version>2.0.2</version>
        </dependency>

The following dependency is missing:

    <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>

Expected Behavior

The framework should run without issues only using the stated dependencies in your MD files.

Add a Jackson sub-dependency to your dependency list :

<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>

Current Behavior

The skills fails due to missing packages of jackson databind when deploying with AWS lambda as its needed inside of: class RequestEnvelope amongst others.

ghost commented 6 years ago

Hey there, that dependency should be included as part of our ask-sdk-core dependency here. Can you try reimporting dependencies?

janknobloch commented 6 years ago

sorry for the late reply: hereby id like to share my full pom as the error seems to persist after removing my manual databind import.

<dependencies>
        <dependency>
            <groupId>com.amazon.alexa</groupId>
            <artifactId>ask-sdk</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.amazon.alexa</groupId>
            <artifactId>ask-sdk-core</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.amazon.alexa</groupId>
            <artifactId>ask-sdk-lambda-support</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-core</artifactId>
            <version>1.2.0</version>
        </dependency>
    </dependencies>

It looks like this issure occurs due to: ask-sdk-dynamodb-persistence-adapter:2.0.2 uses jackson-databind 2.6.7.1 and ask-sdk-core:2.0.2 -> ask-sdk-model:1.0.0 uses jackson-databind 2.9.4

which leads to some conflicts and therefore ommited dependencies.

Best Jan

sungolivia commented 6 years ago

Hey there, apologies on late reply. This is what my mvn dependency:tree spits out when I run the command on ask-sdk-dynamodb-persistence-adapter package.

[INFO] ------------------------------------------------------------------------ [INFO] Building ASK SDK for Java DynamoDB Persistence Adapter 2.0.2 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ ask-sdk-dynamodb-persistence-adapter --- [INFO] com.amazon.alexa:ask-sdk-dynamodb-persistence-adapter:jar:2.0.2 [INFO] +- com.amazon.alexa:ask-sdk-core:jar:2.0.2:compile [INFO] | +- com.amazon.alexa:ask-sdk-model:jar:1.0.0:compile [INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.4:compile [INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.9.4:compile [INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.4:compile ...

So I see that it's 2.9.4 since it's pulling from core pacakge, do you mind showing me how you got 2.6.7.1? Thanks!