Avalara: невозможно создать TransactionModel из TransactionBuilder из-за исключительной ситуации преобразования JSON - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь создать объект TransactionModel в Avalara, используя TransactionBuilder. Я следую за примерами в SDK. Код из примеров, модифицированный для моей компании, генерирует исключение gson.JsonSyntaxException для объекта DateTime, который сама Avalara контролирует . Я могу изменить значение DateTime, но я не могу сказать, как его отформатировать. Мне это кажется ошибкой Avalara, но я надеюсь, что ошибаюсь.

Вот мой код (NB: то же исключение, использую ли я .withDate или нет):

 TransactionModel transaction = new TransactionBuilder(client, "COMPANY", DocumentType.SalesOrder, "myCompany.")
.withDate(Calendar.getInstance().getTime())
.withAddress(TransactionAddressType.SingleLocation, null, null, null, null, null, zipCode, "US")
.withLine( new BigDecimal(100.0), new BigDecimal(1), "P0000000")
.Create();

Вот исключение:

com.google.gson.JsonSyntaxException: 2019-10-01
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:107)
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:82)
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:35)
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
at com.google.gson.Gson.fromJson(Gson.java:803)
at com.google.gson.Gson.fromJson(Gson.java:768)
at com.google.gson.Gson.fromJson(Gson.java:717)
at net.avalara.avatax.rest.client.serializer.JsonSerializer.DeserializeObject(JsonSerializer.java:15)
at net.avalara.avatax.rest.client.RestCall.call(RestCall.java:99)
at net.avalara.avatax.rest.client.AvaTaxClient.createTransaction(AvaTaxClient.java:19174)
at net.avalara.avatax.rest.client.TransactionBuilder.Create(TransactionBuilder.java:425

Примечание: я также задал вопрос по ссылке ниже, но не задал правильный вопрос, оставив часть, где я не мог изменить JSONФорматы вообще: Avalara: Что такое допустимый формат DateTime для даты json?

1 Ответ

0 голосов
/ 14 ноября 2019

Обновите ваш pom.xml или эквивалентный файл, чтобы получить более новую версию gson, и проблема исчезнет. Смотрите форумы Avalara по адресу: https://community.avalara.com/avalara/topics/error-parsing-date-jre-sdk

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>
...