2012-05-23 3 views
1

전에이 질문을했습니다. 내 서비스 conifg은 다음과 같습니다예약 된 작업을 설정하는 방법은 무엇입니까?

<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="UnpayBilling_Task" 
     transports="https,http" 
     statistics="disable" 
     trace="disable" 
     startOnLoad="true"> 
    <target> 
     <inSequence> 
     <class name="com.coship.mediator.UnpayBillingMediator"></class> 
     <log level="full" /> 
     </inSequence> 
     <outSequence> 
     <log level="full" /> 
     <send /> 
     </outSequence> 
     <endpoint> 
     <address uri="http://172.21.13.153:18080/aaa/services/receiveMsg" /> 
     </endpoint> 
    </target> 
</proxy> 

내가이 확장 중재자 UnpayBillingMediator 거래 파일을 작성합니다. 이 클래스는 파일 이름을 반환하고 서비스 http://172.21.13.153:18080/aaa/services/receiveMsg에 요청을 보냅니다. 서비스에 입력 메시지가 없습니다. 매일 13시 30 분에 서비스가 실행되기를 바랍니다. 새로운 예약 된 작업을 추가하려고했습니다. soapAction:urn:mediate,to:http://localhost:8280/services/UnpayBilling?wsdl, Cron: 30 13 * * *.하지만 작동하지 않을 수 있습니까? 누구나이 예약 된 작업을 설정하는 방법을 알 수 있습니까?

SimpleQuartz Server name not in pinned servers list. Not starting Task 

"고정 된 서버"설정 방법도 알지 못합니다.

답변

1

WSO2 ESB에서 기본 메시지 인젝터 작업이 어떻게 작동하는지 설명하겠습니다.

기본적으로 지정된 속성 (예 : 메시지 페이로드, 주소 등)이있는 메시지를 만들고 구성된 간격으로 주 시퀀스에 삽입합니다.

귀하의 경우에는 주어진 To 주소 또는 특정 메시지 본문과 함께 오는 메시지를 필터링하여 전달하는 것과 같은 방식으로 기본 시퀀스를 변경해야합니다.

가장 쉬운 방법은 주소를 필터링하여 백엔드 서비스로 보내도록 WSO2ESB 기본 시퀀스에있는 기본 필터를 변경하는 것입니다.

예는 :

<filter xmlns:ns="http://org.apache.synapse/xsd 
     xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" 
     xmlns:ns3="http://org.apache.synapse/xsd" 
     source="get-property('To')" 
     regex="http://localhost:8280/services/UnpayBilling.*" > 
     ... 
+0

고맙습니다. 정말 친절 하구나. 하지만 나는 너를 잘 이해하지 못한다. 이 서비스를 예약 된 작업으로 설정하는 방법을 알려주시겠습니까? 내 설정도 위에 표시됩니다. 어쩌면 당신은 시도 할 수 있습니다. 친애하는. – luohao

1

다음 ESB 구성 프록시라는 이름의 테스트 및 MyTask이 주 계열에 메시지를 주입 MyTask라는 이름의 작업을 얻었다

봐주십시오과 필터를 변경 우리는 "To"속성을 필터링하고 그 값이 Task에서 설정 한 값이면 프록시 서비스에 보냅니다.

구성은 :

<?xml version="1.0" encoding="UTF-8"?> 
<definitions xmlns="http://ws.apache.org/ns/synapse"> 
    <registry provider="org.wso2.carbon.mediation.registry.WSO2Registry"> 
     <parameter name="cachableDuration">15000</parameter> 
    </registry> 
    <proxy name="Test" transports="https http" startOnLoad="true" trace="disable"> 
     <target> 
      <inSequence> 
       <log level="full"> 
        <property name="IN" value="IN"/> 
       </log> 
       <drop/> 
      </inSequence> 
     </target> 
    </proxy> 
    <sequence name="fault"> 
     <log level="full"> 
      <property name="MESSAGE" value="Executing default 'fault' sequence"/> 
      <property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="ERROR_CODE" expression="get-property('ERROR_CODE')"/> 
      <property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/> 
     </log> 
     <drop/> 
    </sequence> 
    <sequence name="main"> 
     <in> 
      <filter xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" source="get-property('To')" regex="http://localhost:8280/services/Test"> 
       <then> 
        <send> 
         <endpoint> 
          <address uri="http://localhost:8280/services/Test"/> 
         </endpoint> 
        </send> 
       </then> 
       <else/> 
      </filter> 
     </in> 
     <out> 
      <drop/> 
     </out> 
     <description>The main sequence for the message mediation</description> 
    </sequence> 
    <task name="MyTask" class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz"> 
     <trigger count="1" interval="4"/> 
     <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="to" value="http://localhost:8280/services/Test"/> 
     <property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message"> 
      <msg xmlns="">FROM_TASK</msg> 
     </property> 
    </task> 
</definitions> 
+0

고맙습니다. 이제 예약 된 작업을 간단한 트리거 유형에 추가 할 수 있습니다. Cron Trigger Type을 사용하여 "작업 편집 오류 : 스케줄러 시작 오류 : cron 표현식 설정 오류 : 예기치 않은 표현식 종료 13 * * *". 나는 여러 번 노력했다. 너 나 좀 도와 줄 수있어? – luohao

관련 문제