2013-07-08 5 views
1

JBoss AS 5.1.0 및 Jboss ESB 4.10을 사용 중입니다. 하나의 작업이있는 서비스를 호출하려고합니다. 나는 MEP = oneWay for the Service를 설정했다.JBoss ESB XML MEP Behviour

내가 아래 메서드를 사용하여 서비스를 호출 할 때 회신을받지 못했지만 예외가 발생했습니다.

new ServiceInvoker("Chapter3Sample", "Chapter3Service").deliverSync(esbMessage, 10000); 

나는 MEP = RequestResponse을 변경하는 경우 : 내 이해 ESB 메시지에 따라, 회신

을 얻을 수 있어요 (I가 동기화 요청을 invkoing하고 있기 때문에) 메시지는 다시 반환해야 ReplyTo의 필드가 내 경우에는 일어나지 않는 마지막 행동으로 ESB에의 XML을 검색 할 수 있습니다 :

<?xml version="1.0"?> 
<jbossesb parameterReloadSecs="5" 
xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"> 
<providers> 
    <jms-provider connection-factory="ConnectionFactory" name="JBossMQ"> 
    <jms-bus busid="chapter3GwChannel"> 
    <jms-message-filter dest-name="queue/chapter3_Request_gw" dest-type="QUEUE"/> 
    </jms-bus> 
    <jms-bus busid="chapter3EsbChannel"> 
    <jms-message-filter dest-name="queue/chapter3_Request_esb" dest-type="QUEUE"/> 
    </jms-bus> 
    </jms-provider> 
</providers> 
<services> 
    <service category="Chapter3Sample" 
    description="A template for Chapter3" name="Chapter3Service"> 
    <listeners> 
    <jms-listener busidref="chapter3GwChannel" is-gateway="true" name="Chapter3GwListener"/> 
    <jms-listener busidref="chapter3EsbChannel" name="Chapter3Listener"/> 
    </listeners> 
    <actions mep="OneWay"> 
    <action class="org.jboss.soa.esb.samples.chapter3.MyAction" 
    name="BodyPrinter"> 
    <property name="process" value="displayMessage"/> 
    <property name="symbol" value="*"/> 
    <property name="count" value="50"/> 
    <property name="propertyName"> 
     <hierarchicalProperty attr="value"> 
     <inner name="myName" random="randomValue"/> 
     </hierarchicalProperty> 
    </property> 
    <property name="exceptionMethod" value="processException"/> 
    <property name="okMethod" value="processSuccess"/> 
    </action> 
    </actions> 
    </service> 
</services> 
</jbossesb> 

답변

1

당신이 SYNCHRONUS로 전화를 호출하는 경우.

새 ServiceInvoker ("Chapter3Sample", "Chapter3Service") deliverSync (esbMessage, 10000). mep = RequestResponse를 설정하십시오.

호출 할 때 비동기 호출.

새 ServiceInvoker ("Chapter3Sample", "Chapter3Service") deliverASync (esbMessage, 10000). 세트 mep = oneWay.

관련 문제