airavata-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Saminda Wijeratne <samin...@gmail.com>
Subject Re: Writing Airavata output to a FILE
Date Tue, 18 Jun 2013 16:49:14 GMT
Does executing "java -jar
E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar %1" results
files inside the location which you specified?


On Tue, Jun 18, 2013 at 12:24 PM, AMILA RANATUNGA <newair007@gmail.com>wrote:

> Hi,
>
> Thanks a lot for the replies.
>
> When I tried ..
>
>  OutputParameterType outputParameter =
> OutputParameterType.Factory.newInstance();
>         outputParameter.setParameterName("wps_output");
>         outputParameter.setParameterDescription("wps output");
>         ParameterType outputParaType =
> outputParameter.addNewParameterType();
>         outputParaType.setType(DataType.FILE);
>         outputParaType.setName("FILE");
>         outputParameters.add(outputParameter);
>
> and in the script adding
>
> @echo off
>
> echo wps_output=E:\FYP\Other\outGMLFromAirvata\
> java -jar E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar %1
>
> gave me no errors but the output file was not created. Console just shows
>
>  22:21:29.878 06/18/13  workflowInvoked wps_input=sd  22:21:29.963 06/18/13
> WPS_invoke invokingService wps_input=sd  22:21:30.2 06/18/13 WPS_invoke
> workflowInvoked [Workflow is invoked]  22:21:32.550 06/18/13 WPS_invoke
> receivedResult wps_output=E:\FYP\Other\outGMLFromAirvata\  22:21:35.505
> 06/18/13  sendingResult  22:21:36.353 06/18/13  workflowTerminated Workflow
> finished successfully.  22:21:36.377 06/18/13  sendingResult
>
>
> Where have I gone wrong?
>
>
> Thank You !
>
>
>
>
>
>
> On Tue, Jun 18, 2013 at 7:58 PM, Saminda Wijeratne <samindaw@gmail.com
> >wrote:
>
> > Hi Amila,
> >
> > I think benefit of all we'll explain how the output parameters get values
> > once the application gets executed.
> >
> > Since there is no generic communication framework to communicate with any
> > running program the most intuitive way to determine the output of the
> > program is to analyze its output text (i.e. standard output).
> >
> > However in most cases such output text will be of a data structure/format
> > specific for that program. i.e. Airavata will not know how to process the
> > output data in order to figure-out what data should be returned back to
> the
> > user.
> >
> > Therefore we have enabled 2 ways to help Airavata figure that out,
> >
> >    1. Get the whole output text as the output returned from the program.
> >    This is done by specifying the type of the output parameter as
> > "STD_OUT".
> >    It is the responsibility of whatever the next program (or the user)
> that
> >    this output is passed on to as input to determine how to process the
> >    information in it.
> >    2. Assume the standard output contains set of
> >    "<output_para_name>=<output_value>" values separated by newlines
(just
> > like
> >    what we have in a conventional properties file). Here the
> >    "output_para_name" is the name user gives for the output parameter (in
> > your
> >    case "wps output"). The "output_value" is essentially just a piece of
> > text
> >    which should represent whatever the program intended it to be. It is
> > users
> >    responsibility to know what it represents (FILE/URL/INTEGER etc.) and
> >    specify it correctly when defining the output parameters for the
> >    application.
> >
> > The 2nd option above (as you may have imagined) is very impractical since
> > in almost all programs the standard output would not be of the form of
> set
> > of "<output_para_name>=<output_value>" values. In which case what we
> > suggest is to write a wrapper script for your program and let the script
> > output the data correctly. The idea behind here is that given the correct
> > input is passed on to it, the script knows how to run your program and
> > understand the output in order to echo the correct
> > "<output_para_name>=<output_value>" values as standard output. Thus
when
> > you add an application to Airavata you will be specifying the path to
> this
> > script rather than the actual program so that Airavata will execute that
> > script instead with the given input.
> >
> > So when you specify "FILE" as the type of the output parameter what it
> > means to Airavata is that there will be a line in the standard output of
> > executing the program which has "wps output=<some_file_path>" which I
> > imagine in your case you didn't have.
> >
> > Please feel free to ask questions if I wasn't clear enough.
> >
> > Regards,
> >
> > Saminda
> >
> >
> >
> >
> >
> > On Tue, Jun 18, 2013 at 7:57 AM, AMILA RANATUNGA <newair007@gmail.com
> > >wrote:
> >
> > > Hi,
> > >
> > > How we can write Airavata out put to a file instead in std out. I tried
> > > something like using API.
> > >
> > > outputParameter.setParameterDescription("wps output");
> > >         ParameterType outputParaType =
> > > outputParameter.addNewParameterType();
> > >
> > > //if I change the STD_OUT to File
> > >
> > >  outputParaType.setType(DataType.FILE);
> > >
> > >
> > > I got the following exception. But  I get the output correctly with the
> > > STD_OUT.  After that how to save it to custom location?
> > >
> > >
> > >
> > >
> > > <ns:invokingServiceFailed infoModelVersion="2.6"
> > >   xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
> > >   <ns:notificationSource
> > > ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7" />
> > >   <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
> > >   <ns:description>Error while invoking provider
> > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.:
> > > org.apache.airavata.gfac.GFacException: Error while invoking provider
> > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> > > method.</ns:description>
> > >   <ns:annotation>
> > >     <stackTrace>org.apache.airavata.gfac.GFacException: Error while
> > > invoking provider org.apache.airavata.gfac.provider.impl.LocalProvider
> > > dispose method.
> > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > at java.lang.Thread.run(Thread.java:722)
> > > Caused by: org.apache.airavata.gfac.provider.GFacProviderException:
> Error
> > > in retrieving results
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > ... 10 more
> > > Caused by: java.lang.Exception: Data for the output parameter
> > 'wps_output'
> > > was not found
> > > at
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > ... 11 more
> > > </stackTrace>
> > >   </ns:annotation>
> > >   <ns:receiver ns:serviceID="WPS_invoke"
> > > ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
> > >   <ns:failure>
> > >     <ns:trace xsi:type="xs:string" xmlns:xs="
> > > http://www.w3.org/2001/XMLSchema"
> > >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > >       xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08
> > > ">org.apache.airavata.gfac.GFacException:
> > > Error while invoking provider
> > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.
> > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > at java.lang.Thread.run(Thread.java:722)
> > > Caused by: org.apache.airavata.gfac.provider.GFacProviderException:
> Error
> > > in retrieving results
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > ... 10 more
> > > Caused by: java.lang.Exception: Data for the output parameter
> > 'wps_output'
> > > was not found
> > > at
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > ... 11 more
> > > </ns:trace>
> > >   </ns:failure>
> > > </ns:invokingServiceFailed>
> > >
> > >
> > >
> > > Thank You !
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message