Wso2 Dss插入null cassandra

时间:2018-05-23 16:27:28

标签: cassandra wso2 dss

我使用wso2 dss将数据插入到cassandra表中。 例如这个表: CREATE TABLE logs.test(id int,code int,PRIMARY KEY(id));

在wso2 dss中,我使用默认值定义了代码列,如下所示:#{NULL}

当我在没有给出代码参数的情况下尝试这样的dss服务时:

<p:test xmlns:p="http://ws.wso2.org/dataservice">
<xs:id xmlns:xs="http://ws.wso2.org/dataservice">1</xs:id>
</p:test>

我收到此错误:

   <axis2ns56:source_data_service>
        <axis2ns56:data_service_name>Cassandra</axis2ns56:data_service_name>
        <axis2ns56:description>N/A</axis2ns56:description>
        <axis2ns56:location>\Cassandra.dbs</axis2ns56:location>
        <axis2ns56:default_namespace>http://ws.wso2.org/dataservice</axis2ns56:default_namespace>
     </axis2ns56:source_data_service>
     <axis2ns56:ds_code>UNKNOWN_ERROR</axis2ns56:ds_code>
     <axis2ns56:nested_exception>java.lang.NumberFormatException: null</axis2ns56:nested_exception>

嵌套异常: - java.lang.NumberFormatException:对于输入字符串:&#34; null&#34;

祝你好运, 尼古拉斯

2 个答案:

答案 0 :(得分:0)

所以我想你的问题就在这部分

<param defaultValue="#{NULL}" name="code" sqlType="INTEGER"/>. 

我不知道你的用例,但如果我记得很清楚,在Cassandra中插入空值并不是很好,因为它会创建墓碑。 你也可以有第二个查询,只需插入像

这样的id
insert test (id) values (:id).

由dss而不是cassandra引发的execption声音,看起来它无法为整数字段设置空值

答案 1 :(得分:0)

我找到了解决方法,我使用jdbc cassandra而不是com.datatasax驱动程序。 它运作良好。唯一的问题是我只能为连接而不是集群调用一个节点。 我希望问题很快得到解决,我将再次使用Dss Cassandra数据源连接。

求助于你