Frequently Asked Questions

There are no stupid questions,
there may be only stupid answers...
[Tulak]

Questions

Answers

What license does the project use?

An Apache License, Version 2.0

What is USA in the EMBOSS services?

[taken from the EMBOSS documentation] The Uniform Sequence Address, or USA, is a standard sequence naming scheme used by all EMBOSS applications. The USA syntax has the following types:

    * "file"
    * "format::file"
    * "format::file:entry"
    * "dbname:entry"
    * "@listfile"
Where "format" is the database format of a file ("file") you have provided and "entry" is the database entry code. Alternatively an entry can be retrieved from an installed database of format "dnmame". "listfile" is the name a file which itself contains a list of file names.

The "::" and ":" syntax is to allow, for example, "embl" and "pir" to be both database names and sequence formats.

I'm getting an error message that starts with "JAXB 2.0 API is being loaded from the bootstrap classloader"

You are probably using an early version of Java6 (prior to Java6-update4) that includes JAXB 2.0 API. If you upgrade your Java installation to Java6-update5 (or to the latest version of Java-6) this problem should be resolved since Java6-update4 and later releases include the same version of JAXB API used by Soaplab, version 2.1. This problem should not happen when using Java5 since it doesn't include any JAXB API by default.

If you do not want to upgrade to the latest Java6 you can use the java endorsed mechanism. You should simply copy jaxb-api-2.1.jar and jaxws-api-2.1.jar files to your <java-home>/lib/endorsed directory. Here <java-home> refers to the directory where your Java runtime software is installed (which is the top-level directory of your Java Runtime Environment installation or the jre directory in your JDK installation). After you have installed Soaplab2 you can find jaxb-api-2.1.jar and jaxws-api-2.1.jar files in your local maven repository, or in WEB-INF/lib directory of your soaplab2 web application after you have called the ant jaxdeploy target. Since Tomcat by default sets the java.endorsed.dirs property to ${CATALINA_HOME}/common/endorsed you need to copy these two jar files to this directory as well, for the use of your Tomcat(Soaplab) server. Please note that Soaplab2 was not tested on updates of Java6 earlier than update 4.

I wish to deploy two or more versions of Soaplab services

Use the property context.name. Details in the deployment guide, here a brief example:
ant "-Dcontext.name=soaplab2-testing" jaxdeploy
ant "-Dcontext.name=soaplab2-production" jaxdeploy
The above creates two web applications, accessible (assuming a Tomcat running on a localhost using a default port number) as http://localhost:8080/soaplab2-testing and http://localhost:8080/soaplab2-production.

If you are deploying using the axis1 protocol:

ant "-Dcontext.name=soaplab2-testing" axis1deploy
ant "-Dcontext.name=soaplab2-production" axis1deploy
then the URLs will be http://localhost:8080/soaplab2-testing-axis and http://localhost:8080/soaplab2-production-axis.

I'm getting "Unable to delete file" error message(s) for files under my Soaplab web application directory when deploying Soaplab

When deploying Soaplab web applications using Soaplab's ant tasks the deploy tasks attempt to delete the existing web application directory under your Tomcat's "webapps" directory in order to make sure that Tomcat will use the files in the new war file but not the files from the old web application directory. It is possible that while the ant task is cleaning the existing web application directory some files would be in use, causing the above errors. However in most cases Tomcat are able to use the war file copied to its web application directory successfully, even after the above file delete error messages.

I try to find the right way to create boolean parameters (I mean parameter name without parameter value) in ACD format. But they don't appear in the report file when I run the service.

The boolean parameters are treated very similarly to other parameters, except that one can never send a boolean parameter with the false value (e.g. a construct known from some programs, such as "-I-"). Well, never say never: one actually can do it by using instead a string parameter and the template/method parameter attribute - but that is not anymore a boolean parameter.

Default values for boolean parameters are sent only when an ACD file explicitly asks for it by using parameter comment: default (more about it in How to use default values).

In which case (assuming that a user have not specified any value for a boolean parameter): the boolean parameter with the default value true is sent always, and the boolean parameter with the default value false, or without any default value, is not sent.

I'm getting "Report:No such file or directory" errors

This error suggests that Soaplab server is not able to create temporary files under your Tomcat's default temporary files folder. Check your Tomcat's default temporary directory setting. You can change it using the CATALINA_TMPDIR environment variable. The default value is "$CATALINA_BASE/temp".

I'm getting "grammar is not specified" errors

This error happens when using ant tasks after enabling typed interface on a wrongly configured Soaplab installation. Usually getWSDLfiles ant task is not able to load the analysis list file specified in your soaplab.properties file, or any analysis list file were not defined at all. This results in no XSD files generated that ant 'xjc' task can process, so the above error is generated. Solution: make sure you have at list one analysis list file defined which includes at least one entry. If you still get the same error check that you have called 'ant gen' target, or 'ant genemboss' target if you are deploying EMBOSS services, and it has generated XML service description files (also called metadata files) successfully.

My application creates files with fixed names. How to deal with it in Soaplab?

Soaplab does not allow users to specify names of the output files (the reasons are mostly because of the distributed character of web services where the concept of "files" is blurred; but also for some legacy reasons). Therefore, if an application has to have fixed names (either hard-coded names or names based on the value of other parameters) one must wrap the application into a wrapper script. The acd file specifies this wrapper as an executable. The wrapper maps the fixed names into the names generated by Soaplab. The wrapper knows what names were generated because it gets the full command line from the Soaplab.

Here is an example - for the cap3 program. The "cap3" program uses the name of its input file as a prefix for several output file names. The wrapper for cap3 program could use this command-line:

cap3_wrapper
     -I seq
     -q seq.qual
     -C seq.con

     -A seq.cap.ace
     -G seq.cap.contigs
     -Q seq.cap.contigs.qual
     -L seq.cap.contigs.links
     -F seq.cap.info
     -S seq.cap.singlets
     -R seq.con.cap.results
Where -I indicates the input file, and -A, -G, -Q, -L, -F, -S, and -R are all possible output files. The ACD file will reflect this command-line. For example, the first two outputs will be specified as:
...
outfile: ace [
  additional: "Y"
  qualifier: "A"
]

outfile: contigs [
  additional: "Y"
  qualifier: "G"
]
...
The full cap3 wrapper is available here (most of the code is a help message that is not really crucial).

Last modified: Wed Aug 4 12:51:53 2010