【问题标题】:OpenESB CASA: Multiple operations in single WSDLOpenESB CASA:单个 WSDL 中的多个操作
【发布时间】:2014-11-28 18:57:41
【问题描述】:

我有一系列 Web 服务端点,它们在我的实体上提供基本的 CRUD 操作。例如,采用以下 WS 方法: 用户服务?wsdl --getUser(id) --getUsers --addUser(用户) --removeUser(id)

我想在 OpenESB 上创建一个 CA,为所有这些操作提供一个代理端点。

所以我要做的是在 NetBeans 上创建一个新的 BPEL 模块,然后添加一个新的 WSDL 文档作为我的描述符。然后我向这个 WSDL 添加多个操作。

然后我为后端 WS 中实现的每个操作创建一个 BPEL。

这有效地为我提供了具有多个操作的结果输出 WSDL。

将这个 BPEL 模块添加到我的 CA 时出现问题;将端口链接到 PartnerLink 时,每个端口只能执行一次。您可以在此屏幕截图上更清楚地看到它:

我只能从 aulaServicesPort 跟踪一个“箭头”到单个 PartnerLink,而我需要将其链接到屏幕截图中显示的两个操作。

这会导致多个 WSDL,每个操作一个,而我想创建一种“集线器”WSDL,包括所有相关操作(在我之前的示例中,这将是具有所有给定操作的用户 CA)

【问题讨论】:

    标签: web-services wsdl esb bpel open-esb


    【解决方案1】:

    我认为你不能在 CA 中解决这个问题,但你可以通过修改 BPEL 流程来解决它。

    在当前结构中实现这一点的最佳方法是将您的应用程序减少到一个进程,只有一个myRolepartnerLink。这意味着您应该构建一个具有初始pick 和多个并行分支的进程,而不是具有多个具有接收/回复对的进程。大致的结构是这样的:

    <pick name="ServiceSelector" createInstance="yes">
    
         <!-- Each onMessage replaces one of your original processes -->
         <onMessage partnerLink="aulaLink" operation="getAula" portType="aulaServicesPortType">
             <sequence name="Sequence">
                  <!-- call the actual service for getAula-->
                  <reply name="ReplyToGetAula" partnerLink="aulaLink" operation="getAula" portType="aulaServicesPortType"/>
             </sequence>
        </onMessage>
    
         <onMessage partnerLink="aulaLink" operation="getAulas" portType="aulaServicesPortType">
             <sequence name="Sequence">
                  <!-- call the actual service for getAulas-->
                  <reply name="ReplyToGetAula" partnerLink="aulaLink" operation="getAulas" portType="aulaServicesPortType"/>
             </sequence>
        </onMessage>
    
    </pick>
    

    【讨论】:

    • 我不能,因为我的 portType 在 ParnterLinkType 上是相同的。我们可以在聊天中讨论这个吗?我会告诉你我的 BPEL。
    • 是的,我们可以(只要我在我的电脑前)。你可以创建一个房间并邀请吗?如果您使用相同的 portType,那么我不太明白您为什么要使用多个 partnerLinkTypes/partnerLinks。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多