Hi Ravindi, I think you can use aggregate mediator[1] to construct a single response using results from each iteration and send to the client as a single response.
[1] - https://docs.wso2.com/display/ESB480/Sample+400%3A+Message+Splitting+and+Aggregating+the+Responses Thanks. On Fri, Mar 18, 2016 at 3:41 AM, Nuwan Wimalasekara <[email protected]> wrote: > Hi Ravindi, > > Why are you using both send(in outSequence) and respond(in iterate) > mediators? > > Thanks, > Nuwanw > > On Thu, Mar 17, 2016 at 8:54 PM, Thusitha Thilina Dayaratne < > [email protected]> wrote: > >> Hi Ravindi, >> >> AFAIU this error happens due to the client gets a HTTP 202 accept >> response, generated by ESB before it sends the original response from the >> backend. Therefore ESB can't send the original response to the client as it >> has already sent a "HTTP 202 accept" response. >> >> >> On Thu, Mar 17, 2016 at 8:30 PM, Ravindi De silva <[email protected]> >> wrote: >> >>> Hi all, >>> >>> >>> I tried writing a proxy service in the ESB to get the project details >>> from jira using getProject method and then create that project in redmine >>> using createProject if it is not already created in it. I have used the >>> jira and redmine connectors in ESB. The proxy I have written is shown in >>> [1]. >>> >>> When I send the request to the proxy using SoapUI I get an error [2]. >>> But the project of which the details were taken from jira if not present in >>> redmine has been created in it. How can I fix the issue of getting an error >>> ? >>> >>> >>> [1] >>> <proxy xmlns="http://ws.apache.org/ns/synapse" >>> name="newConnectJiraRedmine" >>> transports="http,https" >>> statistics="disable" >>> trace="disable" >>> startOnLoad="true"> >>> <target> >>> <inSequence> >>> <property name="responseType" >>> expression="json-eval($.responseType)"/> >>> <property name="login" expression="json-eval($.login)"/> >>> <property name="password" expression="json-eval($.password)"/> >>> <property name="firstname" expression="json-eval($.firstname)"/> >>> <property name="lastname" expression="json-eval($.lastname)"/> >>> <property name="mail" expression="json-eval($.mail)"/> >>> <property name="authSourceId" >>> expression="json-eval($.authSourceId)"/> >>> <property name="id" expression="json-eval($.id)"/> >>> <property name="name" expression="json-eval($.name)"/> >>> <property name="identifier" >>> expression="json-eval($.identifier)"/> >>> <property name="description" >>> expression="json-eval($.description)"/> >>> <property name="include" expression="json-eval($.include)"/> >>> <property name="projectId" expression="json-eval($.projectId)"/> >>> <property name="trackerId" expression="json-eval($.trackerId)"/> >>> <property name="statusId" expression="json-eval($.statusId)"/> >>> <property name="priorityId" >>> expression="json-eval($.priorityId)"/> >>> <property name="subject" expression="json-eval($.subject)"/> >>> <property name="categoryId" >>> expression="json-eval($.categoryId)"/> >>> <property name="fixedVersionId" >>> expression="json-eval($.fixedVersionId)"/> >>> <property name="assignedToId" >>> expression="json-eval($.assignedToId)"/> >>> <property name="parentIssueId" >>> expression="json-eval($.parentIssueId)"/> >>> <property name="customFields" >>> expression="json-eval($.customFields)"/> >>> <property name="watcherUserIds" >>> expression="json-eval($.watcherUserIds)"/> >>> <property name="uploads" expression="json-eval($.uploads)"/> >>> <property name="createdOn" expression="json-eval($.createdOn)"/> >>> <property name="updatedOn" expression="json-eval($.updatedOn)"/> >>> <property name="offset" expression="json-eval($.offset)"/> >>> <property name="limit" expression="json-eval($.limit)"/> >>> <property name="sort" expression="json-eval($.sort)"/> >>> <property name="notes" expression="json-eval($.notes)"/> >>> <property name="issueId" expression="json-eval($.issueId)"/> >>> <property name="spentOn" expression="json-eval($.spentOn)"/> >>> <property name="hours" expression="json-eval($.hours)"/> >>> <property name="activityId" >>> expression="json-eval($.activityId)"/> >>> <property name="comments" expression="json-eval($.comments)"/> >>> <property name="attachmentId" >>> expression="json-eval($.attachmentId)"/> >>> <property name="status" expression="json-eval($.status)"/> >>> <property name="name" expression="json-eval($.name)"/> >>> <property name="groupId" expression="json-eval($.groupId)"/> >>> <property name="userId" expression="json-eval($.userId)"/> >>> <property name="jiraProjectName" >>> expression="json-eval($.jiraProjectName)" >>> scope="operation"/> >>> <property name="username" value="ravindi" scope="default" >>> type="STRING"/> >>> <property name="password" >>> value="ravindi123" >>> scope="default" >>> type="STRING"/> >>> <property name="uri" >>> value="http://192.168.57.131:8080" >>> scope="default" >>> type="STRING"/> >>> <property name="projectIdOrKey" >>> value="TESPROJ" >>> scope="default" >>> type="STRING"/> >>> <property name="apiUrl" >>> value="http://anthonyrava.m.redmine.org/" >>> scope="default" >>> type="STRING"/> >>> <property name="apiKey" >>> value="7855e5ee84e3f97b02e23ea96f3d69f740399860" >>> scope="default" >>> type="STRING"/> >>> <property name="responseType" value="json" scope="default" >>> type="STRING"/> >>> <jira.init> >>> <username>{$ctx:username}</username> >>> <password>{$ctx:password}</password> >>> <uri>{$ctx:uri}</uri> >>> </jira.init> >>> <jira.getProject> >>> <projectIdOrKey>{$ctx:projectIdOrKey}</projectIdOrKey> >>> </jira.getProject> >>> <property name="jPName" expression="json-eval($.name)"/> >>> <property name="jPDecscription" >>> expression="json-eval($.description)"/> >>> <property name="jPId" expression="json-eval($.id)"/> >>> <log level="custom"> >>> <property name="99999999999999" >>> expression="get-property('jPName')"/> >>> <property name="99999999999999" >>> expression="get-property('jPDecscription')"/> >>> <property name="99999999999999" >>> expression="get-property('jPId')"/> >>> </log> >>> <redmine.init> >>> <apiUrl>{$ctx:apiUrl}</apiUrl> >>> <apiKey>{$ctx:apiKey}</apiKey> >>> <responseType>{$ctx:responseType}</responseType> >>> </redmine.init> >>> <redmine.listProjects/> >>> <iterate continueParent="true" >>> id="activityTypes" >>> expression="//projects" >>> sequential="true"> >>> <target> >>> <sequence> >>> <property name="rPName" expression="//name"/> >>> <log level="custom"> >>> <property name="1212111121121" >>> expression="get-property('jPName')"/> >>> <property name="1212111121121" >>> expression="//identifier"/> >>> <property name="1212111121121" >>> expression="get-property('rPName')"/> >>> </log> >>> <filter >>> xpath="get-property('jPName')=get-property('rPName')"> >>> <then> >>> <log level="custom"> >>> <property name="1212111121121" >>> expression="//name"/> >>> <property name="1212111121121" >>> expression="//identifier"/> >>> </log> >>> </then> >>> <else> >>> <log level="custom"> >>> <property name="00000000000000000000" >>> expression="//identifier"/> >>> </log> >>> <redmine.init> >>> <apiUrl>{$ctx:apiUrl}</apiUrl> >>> <apiKey>{$ctx:apiKey}</apiKey> >>> >>> <responseType>{$ctx:responseType}</responseType> >>> </redmine.init> >>> <redmine.createProject> >>> >>> <description>{$ctx:jPDecscription}</description> >>> <name>{$ctx:jPName}</name> >>> <identifier>te1290123</identifier> >>> </redmine.createProject> >>> </else> >>> </filter> >>> <respond/> >>> </sequence> >>> </target> >>> </iterate> >>> </inSequence> >>> <outSequence> >>> <send/> >>> </outSequence> >>> </target> >>> <description/> >>> </proxy> >>> >>> >>> [2] >>> >>> [2016-03-17 17:03:33,688] ERROR - PassThroughHttpSender Failed to submit >>> the response >>> java.lang.NullPointerException >>> at >>> org.apache.synapse.transport.passthru.util.SourceResponseFactory.create(SourceResponseFactory.java:64) >>> at >>> org.apache.synapse.transport.passthru.PassThroughHttpSender.submitResponse(PassThroughHttpSender.java:462) >>> at >>> org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(PassThroughHttpSender.java:267) >>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) >>> at >>> org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:212) >>> at >>> org.apache.synapse.mediators.builtin.RespondMediator.mediate(RespondMediator.java:28) >>> at >>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) >>> at >>> org.apache.synapse.mediators.eip.splitter.IterateMediator.mediate(IterateMediator.java:241) >>> at >>> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:267) >>> at >>> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:679) >>> at >>> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:244) >>> at >>> org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529) >>> at >>> org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172) >>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >>> at >>> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:247) >>> at >>> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >>> at java.lang.Thread.run(Thread.java:745) >>> [2016-03-17 17:03:33,694] ERROR - Axis2Sender >>> Cache-Control:no-cache,Content-Type:application/json; charset=utf-8,<?xml >>> version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv=" >>> http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><jsonObject><errors>Identifier >>> has already been >>> taken</errors></jsonObject></soapenv:Body></soapenv:Envelope> Unexpected >>> error sending message back >>> org.apache.axis2.AxisFault: Failed to submit the response >>> at >>> org.apache.synapse.transport.passthru.PassThroughHttpSender.handleException(PassThroughHttpSender.java:610) >>> at >>> org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(PassThroughHttpSender.java:269) >>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) >>> at >>> org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:212) >>> at >>> org.apache.synapse.mediators.builtin.RespondMediator.mediate(RespondMediator.java:28) >>> at >>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) >>> at >>> org.apache.synapse.mediators.eip.splitter.IterateMediator.mediate(IterateMediator.java:241) >>> at >>> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:267) >>> at >>> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:679) >>> at >>> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:244) >>> at >>> org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529) >>> at >>> org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172) >>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >>> at >>> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:247) >>> at >>> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >>> at java.lang.Thread.run(Thread.java:745) >>> Caused by: java.lang.NullPointerException >>> at >>> org.apache.synapse.transport.passthru.util.SourceResponseFactory.create(SourceResponseFactory.java:64) >>> at >>> org.apache.synapse.transport.passthru.PassThroughHttpSender.submitResponse(PassThroughHttpSender.java:462) >>> at >>> org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(PassThroughHttpSender.java:267) >>> ... 16 more >>> >>> >>> >>> >>> -- >>> Ravindi de Silva >>> *Software Engineer- Intern* >>> Mobile : +94 (0) 779689620 >>> [email protected] >>> >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> Thusitha Dayaratne >> Software Engineer >> WSO2 Inc. - lean . enterprise . middleware | wso2.com >> >> Mobile +94712756809 >> Blog alokayasoya.blogspot.com >> About http://about.me/thusithathilina >> >> >> _______________________________________________ >> Dev mailing list >> [email protected] >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > Nuwan Wimalasekara > Senior Software Engineer - Test Automation > WSO2, Inc.: http://wso2.com > lean. enterprise. middleware > > phone: +94 71 668 4620 > > > > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- Jagath Ariyarathne Technical Lead WSO2 Inc. http://wso2.com/ Email: [email protected] Mob : +94 77 386 7048
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
