NoSuchMethodError при создании Stripe Charge - PullRequest
0 голосов
/ 28 апреля 2019

Я столкнулся с проблемой при попытке увеличить заряд с использованием тестовых учетных данных Stripe, когда вызывается функция (размещенная на AWS Lambda), возвращается исключение ниже.

Пока я много раз чистил / перестраивал проект. Проведя некоторые исследования, я наткнулся на эту проблему , которая указывает на Gson как на виновника, однако Gson не был зависимостью, и я даже безуспешно импортировал последнюю версию.

Charge

@Override
    public String handleRequest(RequestClass requestClass, Context context) {

        Stripe.apiKey = "HIDDEN";

        try {

            Map<String, Object> chargeParams = new HashMap<String, Object>();
            chargeParams.put("amount", 2000);
            chargeParams.put("currency", "usd");
            chargeParams.put("description", "Charge for jenny.rosen@example.com");
            chargeParams.put("source", "tok_mastercard");

            Charge.create(chargeParams); //Exception points to this line

        } catch (StripeException e) {
            e.printStackTrace();
            System.out.println("Error: " + e.getMessage());
        }

        return "--";
    }

Журнал ошибок

{
  "errorMessage": "com.google.gson.Gson.getDelegateAdapter(Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;",
  "errorType": "java.lang.NoSuchMethodError",
  "stackTrace": [
    "com.stripe.model.BalanceTransactionSourceTypeAdapterFactory.create(BalanceTransactionSourceTypeAdapterFactory.java:32)",
    "com.google.gson.Gson.getAdapter(Gson.java:353)",
    "com.google.gson.Gson.fromJson(Gson.java:754)",
    "com.google.gson.Gson.fromJson(Gson.java:721)",
    "com.google.gson.Gson.fromJson(Gson.java:670)",
    "com.google.gson.Gson.fromJson(Gson.java:642)",
    "com.stripe.net.LiveStripeResponseGetter.staticRequest(LiveStripeResponseGetter.java:538)",
    "com.stripe.net.LiveStripeResponseGetter.request(LiveStripeResponseGetter.java:81)",
    "com.stripe.net.ApiResource.request(ApiResource.java:190)",
    "com.stripe.model.Charge.create(Charge.java:579)",
    "com.stripe.model.Charge.create(Charge.java:567)",
    "helloworld.AddCRM.handleRequest(AddCRM.java:33)",
    "helloworld.AddCRM.handleRequest(AddCRM.java:16)"
  ]
}

Зависимость

(пробовал как с зависимостью Gson, так и без нее)

<dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-core</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.firebase</groupId>
            <artifactId>firebase-admin</artifactId>
            <version>6.7.0</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-s3</artifactId>
            <version>1.11.483</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.stripe</groupId>
            <artifactId>stripe-java</artifactId>
            <version>9.7.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>
    </dependencies>
...