2014-04-01 82 views
1

首先发布到SO,希望我能理解。 :-)WSO2数据服务服务器REST配置

而且,新WSO2DSS ...

我想配置WSO2DSS揭露像REST服务,例如:

http://localhost/svcendpoint/products 
http://localhost/svcendpoint/products/computer 
http://localhost/svcendpoint/products/computer/disks 

其中每个URL返回一个更精致的列表。我已经建立了三个查询/操作/资源,但是我没有得到预期的结果。

我得到第一个列表,第二个Axis2“字符串索引超出范围”异常,第三个列表。

我不确定这是我,一个错误还是错误的方法。任何帮助,将不胜感激。

这里是.dbs文件(我可以包括异常堆栈跟踪它是否将是有益的):

<data name="MyDataService"> 
    <config id="MyDataSource"> 
     <property name="driverClassName">oracle.jdbc.driver.OracleDriver</property> 
     <property name="url">jdbc:oracle:thin:xxxxxx</property> 
     <property name="username">xxx</property> 
     <property name="password">xxx</property> 
    </config> 
    <query id="MyCategoriesQuery" useConfig="MyDataSource"> 
     <sql>select distinct CAT_NM from T_FAM_BLMBRG_DATA_DICT order by CAT_NM</sql> 
     <result defaultNamespace="http://test.org" element="categories" rowName=""> 
     <element column="FLD_MNM_NM" name="FLD_MNM_NM" xsdType="string"/> 
     <element column="FLD_ID" name="FLD_ID" xsdType="string"/> 
     <element column="DATA_LIC_CAT_NM" name="DATA_LIC_CAT_NM" xsdType="string"/> 
     <element column="FLD_DESC_TX" name="FLD_DESC_TX" xsdType="string"/> 
     <element column="CAT_NM" name="CAT_NM" xsdType="string"/> 
     <element column="FLD_DFN_TX" name="FLD_DFN_TX" xsdType="string"/> 
     <element column="FLD_DATYP_NM" name="FLD_DATYP_NM" xsdType="string"/> 
     <element column="CRT_USER_ID" name="CRT_USER_ID" xsdType="string"/> 
     <element column="CRT_TS" name="CRT_TS" xsdType="string"/> 
     <element column="UPD_USER_ID" name="UPD_USER_ID" xsdType="string"/> 
     <element column="UPD_TS" name="UPD_TS" xsdType="string"/> 
     </result> 
    </query> 
    <query id="MyCategoryQuery" useConfig="MyDataSource"> 
     <sql>select * from T_FAM_BLMBRG_DATA_DICT where CAT_NM = :cat</sql> 
     <result defaultNamespace="http://test.org" element="entries" rowName=""> 
     <element column="FLD_MNM_NM" name="FLD_MNM_NM" xsdType="string"/> 
     <element column="FLD_ID" name="FLD_ID" xsdType="string"/> 
     <element column="DATA_LIC_CAT_NM" name="DATA_LIC_CAT_NM" xsdType="string"/> 
     <element column="FLD_DESC_TX" name="FLD_DESC_TX" xsdType="string"/> 
     <element column="CAT_NM" name="CAT_NM" xsdType="string"/> 
     <element column="FLD_DFN_TX" name="FLD_DFN_TX" xsdType="string"/> 
     <element column="FLD_DATYP_NM" name="FLD_DATYP_NM" xsdType="string"/> 
     <element column="CRT_USER_ID" name="CRT_USER_ID" xsdType="string"/> 
     <element column="CRT_TS" name="CRT_TS" xsdType="string"/> 
     <element column="UPD_USER_ID" name="UPD_USER_ID" xsdType="string"/> 
     <element column="UPD_TS" name="UPD_TS" xsdType="string"/> 
     </result> 
     <param name="cat" sqlType="STRING"/> 
    </query> 
    <query id="MyCategoryFldQuery" useConfig="MyDataSource"> 
     <sql>select * from T_FAM_BLMBRG_DATA_DICT where CAT_NM = :cat and FLD_ID = :fld</sql> 
     <result defaultNamespace="http://test.org" element="names" rowName=""> 
     <element column="FLD_MNM_NM" name="FLD_MNM_NM" xsdType="string"/> 
     <element column="FLD_ID" name="FLD_ID" xsdType="string"/> 
     <element column="DATA_LIC_CAT_NM" name="DATA_LIC_CAT_NM" xsdType="string"/> 
     <element column="FLD_DESC_TX" name="FLD_DESC_TX" xsdType="string"/> 
     <element column="CAT_NM" name="CAT_NM" xsdType="string"/> 
     <element column="FLD_DFN_TX" name="FLD_DFN_TX" xsdType="string"/> 
     <element column="FLD_DATYP_NM" name="FLD_DATYP_NM" xsdType="string"/> 
     <element column="CRT_USER_ID" name="CRT_USER_ID" xsdType="string"/> 
     <element column="CRT_TS" name="CRT_TS" xsdType="string"/> 
     <element column="UPD_USER_ID" name="UPD_USER_ID" xsdType="string"/> 
     <element column="UPD_TS" name="UPD_TS" xsdType="string"/> 
     </result> 
     <param name="cat" sqlType="STRING"/> 
     <param name="fld" sqlType="STRING"/> 
    </query> 
    <operation name="MyCategoriesService"> 
     <call-query href="MyCategoriesQuery"/> 
    </operation> 
    <operation name="MyCategoryService"> 
     <call-query href="MyCategoryQuery"> 
     <with-param name="cat" query-param="cat"/> 
     </call-query> 
    </operation> 
    <operation name="MyCategoryFldService"> 
     <call-query href="MyCategoryFldQuery"> 
     <with-param name="cat" query-param="cat"/> 
     <with-param name="fld" query-param="fld"/> 
     </call-query> 
    </operation> 
    <resource method="GET" path="category"> 
     <call-query href="MyCategoriesQuery"/> 
    </resource> 
    <resource method="GET" path="category/{cat}"> 
     <call-query href="MyCategoryQuery"> 
     <with-param name="cat" query-param="cat"/> 
     </call-query> 
    </resource> 
    <resource method="GET" path="category/{cat}/{fld}"> 
     <call-query href="MyCategoryFldQuery"> 
     <with-param name="cat" query-param="cat"/> 
     <with-param name="fld" query-param="fld"/> 
     </call-query> 
    </resource> 
</data> 

回答

1

您需要调用的服务如下图所示

http://localhost:9763/services/SERVIVENAME.HTTPEndpoint/RESOURCEPATH/ 

例如

http://localhost:9763/services/MyDataSource.HTTPEndpoint/category/computer 

请参考[1]了解更多详情

https://docs.wso2.org/display/DSS310/Exposing+Data+as+REST-Style+Resources

+0

是的,这就是我正在做的。问题不是服务的调用,而是一些调用导致异常的事实。我发布的第一个网址是。第二个导致一个例外,第三个作品。查看.dbs中的资源块,了解它们是如何定义的。注意:我输入的网址是“示例”,实际的网址看起来像是你写的。 –