rest - WSO2 数据服务中的休息资源错误,过程没有参数
问题描述
您好我正在创建一个 WSO2 数据服务,并且我正在调用一个具有输出参数的存储过程。
{call ? :=IRIS_REST_PKG.INSERT_OR_UPDATE_STUDENT(?,?,?) }
所以我可以让整个事情在 try it 编辑器中工作,但是当我配置其余资源时,我会看到一个请求参数列表,其中包括我之前在查询中定义的输出参数。当我只用参数调用其余服务时,我得到:
Value type miss match, Expected value type - 'null', but found - 'STRING'.
我正在使用 6.4.0 版的 Enterprise Intergrator。这是我的 dbs 文件:
<data name="IRIS" transports="http https local">
<config enableOData="false" id="ORACLE">
<property name="driverClassName">oracle.jdbc.driver.OracleDriver</property>
<property name="url">jdbc:oracle:thin:@ldap:...</property>
<property name="username">xxxxxxxxxxxx</property>
<property name="password">xxxxxxxxxxxx</property>
<property name="dataSourceProps"/>
<property name="dynamicUserAuthMapping">
<configuration/>
</property>
</config>
<query id="get_student" useConfig="ORACLE">
<sql>{call ?:=TEST_PKG.get_student(?)}</sql>
<result element="upi" rowName="">
<element column="upi" name="upi" xsdType="string"/>
<element column="research_summary" name="research_summary" xsdType="string"/>
</result>
<param name="result" sqlType="ORACLE_REF_CURSOR" type="OUT"/>
<param name="upi" sqlType="STRING"/>
</query>
<query id="q1" useConfig="ORACLE">
<sql>{call ?:=TEST_PKG.myfunction(?,?)}</sql>
<result element="myCount" rowName="">
<element column="myCount" name="myCount" xsdType="integer"/>
</result>
<param name="myCount" sqlType="INTEGER" type="OUT"/>
<param name="ename" sqlType="STRING"/>
<param name="eid" sqlType="INTEGER"/>
</query>
<query id="insert_or_update_student" useConfig="ORACLE">
<sql>{call ? :=IRIS_REST_PKG.INSERT_OR_UPDATE_STUDENT(?,?,?) }</sql>
<result outputType="json">{"result":{"status":"$status"}}</result>
<param defaultValue="-1" name="status" sqlType="INTEGER" type="OUT"/>
<param name="upi" sqlType="STRING"/>
<param name="summary" sqlType="STRING"/>
<param name="optIn" sqlType="INTEGER"/>
</query>
<query id="get_jstudent" useConfig="ORACLE">
<sql>SELECT UPI, RESEARCH_SUMMARY FROM xxx r WHERE r.UPI = :upi</sql>
<result outputType="json">{"result":{"upi":"$upi","research_summary":"$research_summary"}}</result>
<param name="upi" sqlType="STRING"/>
</query>
<operation name="get_student">
<call-query href="get_student">
<with-param name="upi" query-param="upi"/>
</call-query>
</operation>
<operation name="op1">
<call-query href="q1">
<with-param name="ename" query-param="ename"/>
<with-param name="eid" query-param="eid"/>
</call-query>
</operation>
<operation name="insert_or_update_student">
<call-query href="insert_or_update_student">
<with-param name="upi" query-param="upi"/>
<with-param name="summary" query-param="summary"/>
<with-param name="optIn" query-param="optIn"/>
</call-query>
</operation>
<operation name="get_jstudent">
<call-query href="get_jstudent">
<with-param name="upi" query-param="upi"/>
</call-query>
</operation>
<resource method="GET" path="r1">
<call-query href="get_student">
<with-param name="result" query-param="result"/>
<with-param name="upi" query-param="upi"/>
</call-query>
</resource>
<resource method="POST" path="insertOrUpdateStudent">
<call-query href="insert_or_update_student">
<with-param name="status" query-param="status"/>
<with-param name="upi" query-param="upi"/>
<with-param name="summary" query-param="summary"/>
<with-param name="optIn" query-param="optIn"/>
</call-query>
</resource>
<resource method="GET" path="get_jstudent/{upi}">
<call-query href="get_jstudent">
<with-param name="upi" query-param="upi"/>
</call-query>
</resource>
</data>
我说的是:insertOrUpdateStudent 资源部分。
<with-param name="status" query-param="status"/>
我也删除了这条线,但仍然无法正常工作。我也尝试过传递 null / 0 / "" 但仍然无法正常工作。
任何帮助将不胜感激。
谢谢你。
解决方案
答案是,如果资源和操作具有相同的名称,就会出错。即使上述正确,向导也会将输出参数显示为查询参数,因此要做的是编辑 xml 并从资源参数中删除输出参数。
推荐阅读
- javascript - 在赛普拉斯中,我无法选择下拉值,因为第一次未加载值并等待加载另一个下拉值
- google-cloud-platform - 服务项目中的 Google Composer 创建失败
- python - Heroku 应用程序错误日志,无法运行 heroku open
- c++ - 是否`std::any_cast
` 要求 `T` 即使在要求指针时也是可构造的? - python - 为数据框过滤器填充 na
- mysql - 使用 Spring Boot + RestAPI + JPA + CrudRepository + MySQL 创建 CRUD 时出现异常
- python - 使用递归检查回文时,反向指针如何移动?
- android - 使用来自不同片段的数据创建历史记录
- kubernetes - Prometheus 如何发现 Kubernetes 作业?
- python - 反转列表元素并存储为字典列表