0

シートの列 ID を取得する際に問題が発生しています。以下は、失敗している私の単体テストです。私が間違っていることについて何か考えはありますか?ID が Column モデルに入っていないようです。

それは失敗しています:java.lang.AssertionError: Column "Primary Column" has null Id.

@Test
public void getColumnInfo() {
    try {
        Token token = new Token();
        token.setAccessToken(TEST_API_TOKEN);
        Smartsheet conn = new SmartsheetBuilder().setAccessToken(token.getAccessToken()).build();
        List<Column> columns = conn.sheets().columns().listColumns(TEST_SHEET_ID);
        org.junit.Assert.assertTrue("Sheet has columns.", columns.size() > 0);
        for (Column column : columns) {
            String columnName = column.getTitle();
            org.junit.Assert.assertNotNull("Column has null Title.", columnName);
            org.junit.Assert.assertNotNull("Column \"" + columnName + "\" has null Index.", column.getIndex());
            org.junit.Assert.assertNotNull("Column \"" + columnName + "\" has null Type.", column.getType());
            org.junit.Assert.assertNotNull("Column \"" + columnName + "\" has null Id.", column.getId());
        }
    } catch (Exception ex) {
        org.junit.Assert.assertNull("Exception calling API.", ex);
    }
}

これはSmartsheet Java SDKの v1.1.0です。

4

1 に答える 1

0

これは、Smartsheet SDK が現在サポートしているバージョンよりも新しいバージョンの Jackson (> 2.4.3) を使用していることが原因です。

新しいバージョンの Jackson をサポートする SDK の新しいバージョンをまもなくリリースする予定です。


Jackson > 2.4.3 で動作しない特定のコード行は、JacksonJsonSerializer.javaにある次のとおりです。

OBJECT_MAPPER.addMixInAnnotations(IdentifiableModel.class, IdFieldExclusionMixin.class);

次のように変更する必要があります。

SimpleModule module = new SimpleModule("Module", Version.unknownVersion());
module.setMixInAnnotation(IdentifiableModel.class, IdFieldExclusionMixin.class);
OBJECT_MAPPER.registerModule(module);
于 2015-08-06T22:54:37.107 に答える