无法从已部署的包中获得响应

时间:2013-09-19 10:06:28

标签: oracle soap plsql soa

我创建了一个plsql包并将其上传到集成的SOA网关。我生成了WSDL并部署了服务。但是当我通过使用soap ui调用它来测试服务时,回复的响应是空的,如下所示。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body/>
</soapenv:Envelope>

现在我尝试从另一个块调用包中的过程,发现数据正好在那里。

但是当我在SOA监视器中搜索并发现收到的请求状态为“成功”且响应为空时。

我的包装规格如下。

CREATE OR REPLACE
PACKAGE XX_FS_ALL_TASKS_PUB AS
/* $Header: $ */
/*#
* This package is the public interface for Dynamic Field Service Tasks Data.
* @rep:scope public
* @rep:product csf
* @rep:displayname XX_FS_ALL_TASKS_PUB
* @rep:lifecycle active
* @rep:compatibility S
* @rep:category BUSINESS_ENTITY CSF_TASK_DEBRIEF
*/
    /*#
    * Use this procedure to get dynamic Field Service details
    * @param p_assignee_id  Assignee id
    * @param x_task_rec Task details
    * @param x_return_code  Error Code details
    * @rep:displayname get_tasklist
    */
    PROCEDURE get_tasklist (
        p_assignee_id IN  NUMBER,
        x_task_rec    OUT xx_fs_mob_loc_rec.all_task_tab,
        x_return_code OUT VARCHAR2
    );
END XX_FS_ALL_TASKS_PUB;

2 个答案:

答案 0 :(得分:1)

你应该创建一个函数,而不是像这样的

/*#
* Use this procedure to get dynamic Field Service details
* @param p_assignee_id  Assignee id
* @return Status
* @rep:displayname get_tasklist
* @rep:scope public
* @rep:category BUSINESS_ENTITY CSF_TASK_DEBRIEF
*/
FUNCTION get_tasklist (

  p_assignee_id          IN       NUMBER,

) return x_result;

和x_result应该是一个自定义对象,其中包含您要返回的数据。

答案 1 :(得分:0)

删除您在EBS实例的 PLSQL 文件夹中所部署的程序包(procedure_name.xml)的生成的xml文件中的 IrepOverloadSeq 标记,该文件位于< strong> SOA 文件夹。保存文件并再次测试。