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
ravi...@wso2.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to