Smartsheet Java SDK - AssertionError:“主列”具有空Id

时间:2015-08-06 22:54:37

标签: java smartsheet-api smartsheet-java-sdk-v1

我在找回工作表的列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。

1 个答案:

答案 0 :(得分:0)

这是因为使用较新版本的Jackson(> 2.4.3)而不是Smartsheet SDK目前支持的版本。

我们很快将发布新版本的SDK,以支持更新版本的Jackson。

与Jackson不兼容的特定代码行&gt; 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);