0

我使用 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:对于输入字符串:“null”

最好的问候,尼古拉斯

4

3 回答 3

0

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

谢谢你的帮助

于 2018-05-25T13:50:54.287 回答
0

是否有可能获得数据服务的来源?您是否尝试过以下有效负载

<p:test xmlns:p="http://ws.wso2.org/dataservice">
  <p:id>1</p:id>
  <p:code>2</p:code>
</p:test>
于 2018-05-24T07:25:47.920 回答
0

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

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

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

insert test (id) values (:id).

dss 不是 cassandra 发出的执行声音,看起来它无法为整数字段设置空值

于 2018-05-24T07:38:41.670 回答