将JMS变量分配给数据库变量时出现问题

时间:2019-04-15 13:15:22

标签: xml oracle web-services soa jdeveloper

因此,我是Oracle SOA Suite 12c和JDeveloper的新手。我仍在学习,但问题是我无法在线上找到有关在开发服务时遇到的错误的足够信息。对于此服务,我必须使用来自JMS服务器的队列数据并将其存储在数据库中。但是我遇到一些错误

因此,我创建了一个服务,该服务由与BPEL连接的JMS适配器组成,该BPEL连接到DB适配器。现在,当我在JMS队列上添加数据时,数据将被服务使用,但是当我必须分配值时,分配活动将出现以下错误:

<bpelFault><faultType>0</faultType><selectionFailure xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"></selectionFailure></bpelFault>

这是我的BPEL:

<?xml version = "1.0" encoding = "UTF-8" ?>
<process name="BPELProcess1"
           targetNamespace="http://xmlns.oracle.com/Application22/listenqueue/BPELProcess1"
               xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
               xmlns:client="http://xmlns.oracle.com/Application22/listenqueue/BPELProcess1"
               xmlns:ora="http://schemas.oracle.com/xpath/extension"
               xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
               xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
         xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/jms/Application22/listenqueue/jmsService"
         xmlns:ns2="http://xmlns.oracle.com/pcbpel/adapter/db/Application22/listenqueue/db"
         xmlns:ns3="http://www.example.org" xmlns:ns4="http://xmlns.oracle.com/pcbpel/adapter/db/top/db">

  <!--
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     ORCHESTRATION LOGIC
     Set of activities coordinating the flow of messages across the
     services integrated within this business process
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  -->
  <partnerLinks>
    <partnerLink name="jmsService" partnerLinkType="ns1:Consume_Message_plt" myRole="Consume_Message_role"/>
    <partnerLink name="db" partnerLinkType="ns2:db_plt" partnerRole="db_role"/>
  </partnerLinks>
  <variables>
    <variable name="Receive1_Consume_Message_InputVariable" messageType="ns1:Consume_Message_msg"/>
    <variable name="Invoke1_insert_InputVariable" messageType="ns2:UsersCollection_msg"/>
  </variables>
  <sequence name="main">
    <receive name="Receive1" partnerLink="jmsService" portType="ns1:Consume_Message_ptt" operation="Consume_Message"
             variable="Receive1_Consume_Message_InputVariable" createInstance="yes"/>
    <assign name="Assign1">
      <copy>
        <from>$Receive1_Consume_Message_InputVariable.body/ns3:USERID/ns3:USERID</from>
        <to expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">$Invoke1_insert_InputVariable.UsersCollection/ns4:Users/ns4:userid</to>
      </copy>
      <copy>
        <from>$Receive1_Consume_Message_InputVariable.body/ns3:USERID/ns3:FNAME</from>
        <to expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">$Invoke1_insert_InputVariable.UsersCollection/ns4:Users/ns4:fname</to>
      </copy>
      <copy>
        <from>$Receive1_Consume_Message_InputVariable.body/ns3:USERID/ns3:USERSTATE</from>
        <to expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">$Invoke1_insert_InputVariable.UsersCollection/ns4:Users/ns4:userstate</to>
      </copy>
      <copy>
        <from>$Receive1_Consume_Message_InputVariable.body/ns3:USERID/ns3:MOBILE</from>
        <to expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">$Invoke1_insert_InputVariable.UsersCollection/ns4:Users/ns4:mobile</to>
      </copy>
      <copy>
        <from>$Receive1_Consume_Message_InputVariable.body/ns3:USERID/ns3:EMAIL</from>
        <to expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">$Invoke1_insert_InputVariable.UsersCollection/ns4:Users/ns4:email</to>
      </copy>
      <copy>
        <from>$Receive1_Consume_Message_InputVariable.body/ns3:USERID/ns3:USERTYPE</from>
        <to expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">$Invoke1_insert_InputVariable.UsersCollection/ns4:Users/ns4:usertype</to>
      </copy>
    </assign>
    <invoke name="Invoke1" partnerLink="db" portType="ns2:db_ptt" operation="insert"
            inputVariable="Invoke1_insert_InputVariable" bpelx:invokeAsDetail="no"/>
  </sequence>
</process>

但是问题是,接收器能够接收数据,但是idk为什么当我尝试分配值时,我得到的值是null的错误。我该怎么办?

0 个答案:

没有答案