Проблема при назначении переменной JMS переменной базы данных - PullRequest
1 голос
/ 15 апреля 2019

Итак, я новичок в Oracle SOA Suite 12c и JDeveloper.Я все еще учусь, но проблема в том, что я не могу найти достаточно информации в Интернете об ошибках, с которыми я сталкиваюсь при разработке сервисов.Для этого сервиса я должен использовать данные очереди с сервера JMS и сохранять их в базе данных.Однако я сталкиваюсь с некоторыми ошибками

Поэтому я создал службу, состоящую из адаптера JMS, подключенного к BPEL, который подключен к адаптеру БД.Теперь, когда я добавляю данные в очередь 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>

но дело в том, что получатель может получать данные, но не знаю, почему, когда я пытаюсь присвоить значения, я получаю ошибку, что значения равны нулю.Что мне делать?

...