Hi,

We have a strange problem with the attached workflow.

The workflow produces an error for one of the operations in Taverna ('Unable to find input data'), but I think it used to work earlier. Moreover, it works outside of Taverna (Java scripts attached).

Do you know what the problem might be?

Many thanks,
Marco.



--
Marco Roos (PhD) <http://home.medewerker.uva.nl/m.roos1>
*BioSemantics group* <http://www.biosemantics.nl>, Human Genetics department <http://www.humgen.nl>, Leiden University Medical Centre <http://www.lumc.nl>
Albinusdreef 2 (Building 2, room S3-46)
2333 ZA Leiden
Tel. +31 (0) 71 526 8642
*Adaptive Information Disclosure group* <http://adaptivedisclosure.org/>, Informatics Institute <http://www.science.uva.nl/ii>, University of Amsterdam <http://www.uva.nl/> Kruislaan 403 ( room N2.30 <http://remote.science.uva.nl/%7Eroos/Kruislaan403_N230.png>) 1098 SJ Amsterdam
Tel. +31 (0) 20 525 7522
*Communities:*
Professional: LinkedIn <http://www.linkedin.com/in/marcoroos>, myExperiment <http://www.myexperiment.org/users/18> Personal: Hyves <http://mroos62.hyves.nl/>
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow"; version="1" 
producedBy="taverna-2.2.0"><dataflow id="7400747f-ffbb-4c4e-a2c0-7b4e2a5bf603" 
role="top"><name>Workflow32</name><inputPorts 
/><outputPorts><port><name>UniProtID</name><annotations 
/></port><port><name>Synonyms</name><annotations 
/></port></outputPorts><processors><processor><name>getUniprotID</name><inputPorts><port><name>term</name><depth>0</depth></port></inputPorts><outputPorts><port><name>getUniprotIDReturn</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map
 from="term" to="term" /></inputMap><outputMap><map from="getUniprotIDReturn" 
to="getUniprotIDReturn" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean
 xmlns="">
  
<wsdl>http://www.biosemantics.org:8080/axis/services/SynsetServer/SynsetServer.jws?wsdl</wsdl>
  <operation>getUniprotID</operation>
</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
 xmlns="">
  <maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
 xmlns="">
  <backoffFactor>1.0</backoffFactor>
  <initialDelay>1000</initialDelay>
  <maxDelay>5000</maxDelay>
  <maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port
 name="term" depth="0" 
/></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>term_value</name><inputPorts
 
/><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap
 /><outputMap><map from="value" to="value" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean
 xmlns="">
  <value>EZH2</value>
</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
 xmlns="">
  <maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
 xmlns="">
  <backoffFactor>1.0</backoffFactor>
  <initialDelay>1000</initialDelay>
  <maxDelay>5000</maxDelay>
  <maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy
 
/></iteration></iterationStrategyStack></processor><processor><name>getSynsets</name><inputPorts><port><name>term</name><depth>0</depth></port></inputPorts><outputPorts><port><name>getSynsetsReturn</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map
 from="term" to="term" /></inputMap><outputMap><map from="getSynsetsReturn" 
to="getSynsetsReturn" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean
 xmlns="">
  
<wsdl>http://www.biosemantics.org:8080/axis/services/SynsetServer/SynsetServer.jws?wsdl</wsdl>
  <operation>getSynsets</operation>
</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
 xmlns="">
  <maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
 xmlns="">
  <backoffFactor>1.0</backoffFactor>
  <initialDelay>1000</initialDelay>
  <maxDelay>5000</maxDelay>
  <maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port
 name="term" depth="0" 
/></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions
 /><datalinks><datalink><sink 
type="processor"><processor>getUniprotID</processor><port>term</port></sink><source
 
type="processor"><processor>term_value</processor><port>value</port></source></datalink><datalink><sink
 
type="processor"><processor>getSynsets</processor><port>term</port></sink><source
 
type="processor"><processor>term_value</processor><port>value</port></source></datalink><datalink><sink
 type="dataflow"><port>UniProtID</port></sink><source 
type="processor"><processor>getUniprotID</processor><port>getUniprotIDReturn</port></source></datalink><datalink><sink
 type="dataflow"><port>Synonyms</port></sink><source 
type="processor"><processor>getSynsets</processor><port>getSynsetsReturn</port></source></datalink></datalinks><annotations><annotation_chain_2_2
 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
  <annotationAssertions>
    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
      <annotationBean 
class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
        <identification>7400747f-ffbb-4c4e-a2c0-7b4e2a5bf603</identification>
      </annotationBean>
      <date>2010-10-12 11:00:52.527 CEST</date>
      <creators />
      <curationEventList />
    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
  </annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2
 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
  <annotationAssertions>
    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
      <annotationBean 
class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
        <identification>61f77af4-42fd-4dbc-9e27-9867cda01dcb</identification>
      </annotationBean>
      <date>2010-10-12 10:59:46.735 CEST</date>
      <creators />
      <curationEventList />
    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
  </annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
import java.util.ArrayList;
import java.util.List;

import org.erasmusmc.ids.DatabaseID;
import org.erasmusmc.ontology.Concept;
import org.erasmusmc.ontology.TermStore;
import org.erasmusmc.peregrine.ResultConcept;
import org.erasmusmc.rmi.ontology.client.RMIOntology;
import org.erasmusmc.rmi.peregrine.client.RMIPeregrine;

public class SynsetServer {
  
  public static String server = "156.83.20.13";
  
  private static List<Integer> getCIDs(String term){
    RMIPeregrine peregrine = null;
    try {
      peregrine = new RMIPeregrine(server, 1011, "RMIPeregrineLookupServerService");
    } catch (Exception e) {
      e.printStackTrace();
    }   
    peregrine.index(term);
    List<Integer> cids = new ArrayList<Integer>();
    for (ResultConcept concept : peregrine.resultConcepts){
      if (concept.conceptId > 2000000)
        cids.add(concept.conceptId);
    }   
    return cids;
  }
  public static String[][] getSynsets(String term){
    RMIOntology ontology = null;
    try {
      ontology = new RMIOntology(server, 1011, "RMIOntologyServerService");
    } catch (Exception e) {
      e.printStackTrace();
    }
    List<Integer> cids = getCIDs(term);
    String[][] result = new String[cids.size()][];
    for (int i = 0; i < cids.size(); i++){
      Concept concept = ontology.getConcept(cids.get(i));
      List<TermStore> terms = concept.getTerms();
      result[i] = new String[terms.size()];
      for (int j = 0; j < terms.size(); j++)
        result[i][j] = terms.get(j).text;
    }
    return result;
  }
  
  public static String[] getUniprotID(String term){
    RMIOntology ontology = null;
    try {
      ontology = new RMIOntology(server, 1011, "RMIOntologyServerService");
    } catch (Exception e) {
      e.printStackTrace();
    }
    List<Integer> cids = getCIDs(term);
    List<String> result = new ArrayList<String>();
    for (Integer cid : cids){
      List<DatabaseID> databaseIDs = ontology.getDatabaseIDsForConcept(cid);
      for (DatabaseID databaseID : databaseIDs){
        if (databaseID.database.equals("UP"))
          result.add(databaseID.ID);
      }
    }
    return (String[])result.toArray(new String[result.size()]);
  }
}


import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class SynsetServerTestClient extends Thread{
  private static boolean soap = true;
  private static int waves = 0;
  private static int waveSize = 10;
  
  public static void main(String [] args){    
    System.out.println("***** First contact *****");
    SynsetServerTestClient first = new SynsetServerTestClient();
    first.start();
    try {
      first.join();
    } catch (InterruptedException e1) {
      e1.printStackTrace();
    }
    
    for (int x = 0; x < waves; x++){
      System.out.println("***** Next wave *****");
      for (int i = 0; i < waveSize; i++){
        new SynsetServerTestClient().start();
      }
      try {
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }  
  
  public SynsetServerTestClient(){
  }
  public void run() {
    String myText  = "EZH2";
    String[][] result = null;
    String[] result2 = null;

    if (soap){
      String endpoint = "http://biosemantics.org:8080/axis/services/SynsetServer/SynsetServer.jws";;
      result = (String[][])soapCall(endpoint, "getSynsets", myText);
      result2 = (String[])soapCall(endpoint, "getUniprotID", myText);
    } else { //not soap
      result = SynsetServer.getSynsets(myText);
      result2 = SynsetServer.getUniprotID(myText);
    }
    //Display the results:
    for (String[] resultString : result){
      System.out.println("*Synset*");
      for (String str : resultString)
        System.out.println(str);
    }  
    System.out.println("*UNIPROT*");
    for (String spid : result2)
      System.out.println(spid);
  }
  
  private Object soapCall(String endpoint, String operation, String parameter){
    Service  service = new Service();
    Object result = null;
    Call call = null;
    try {
      call = (Call) service.createCall();
      call.setTargetEndpointAddress(new java.net.URL(endpoint));
    } catch (ServiceException e) {
      e.printStackTrace();
    } catch (MalformedURLException e) {
      e.printStackTrace();
    }
    call.setOperationName(operation);
    call.addParameter("term", XMLType.XSD_STRING, ParameterMode.IN);
    call.setReturnType(XMLType.SOAP_ARRAY);
    try {
      result = call.invoke( new Object [] {parameter});
    } catch (RemoteException e) {
      e.printStackTrace();
    }
    return result;
  }
}
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
taverna-users mailing list
[email protected]
[email protected]
Web site: http://www.taverna.org.uk
Mailing lists: http://www.taverna.org.uk/about/contact-us/

Reply via email to