[Biojava-l] BioJava, Dazzle and Google App Engine (Java version)

Rouilly, Vincent vincent.rouilly03 at imperial.ac.uk
Tue Aug 11 09:16:41 UTC 2009


Hi,

thanks a lot for those who provided me advices.
I finally got 'dazzle' to work on the Google App Engine.

In short, it means that you can get a free/scalable DAS server on the Google Cloud.

check:
http://dazzle-das.appspot.com/das/dsn
http://dazzle-das.appspot.com/das/test/entry_points

If you are interested, you can find below the process I followed.
My next target is to get 'dazzle' to fetch annotation directly from the Google Data Store provided in the Google App Engine (as opposed to from a flat file).

best,

Vincent.
----------------------

Prerequisites:
- Java 1.5
- Eclipse 3.4.1 + Google App Engine plug-in from http://code.google.com/appengine/docs/java/tools/eclipse.html
- Dazzle code into /tmp/dazzle from: svn checkout http://www.derkholm.net/svn/repos/dazzle/trunk /tmp/dazzle


1- Create new Google App Engine project from Eclipse (after Google Engine plug-in installation):
        Project name: dazzle
        Package: org.biojava.servlets.dazzle
        Uncheck 'Use Google Web Toolkit'
        Finish

2- Import 'dazzle' Jar files into 'dazzle google engine' project
        In Eclipse, 'dazzle' project Properties -> Java Build Path -> Add  External Jars
        Import from /tmp/dazzle/jars: bioJava.jar, bytecode.jar, dasmi-model.jar, servlet-api-2.3.jar

3- Import 'dazzle' ressources folder into 'dazzle google engine' project
        drag-and-drop /tmp/dazzle/resources folder into 'Eclipse:/dazzle' folder       

4- Import 'dazzle' src files into 'dazzle google engine' project
        drag-and-drop /tmp/dazzle/src/org folder into 'Eclipse:/ dazzle/src' folder
        Comment: you should have 3 errors due to the use of Context in 'MysqlFeatureCache'. For now, I just commented the 2 lines involved.

5- Import /tmp/dazzle/dazzle-webapp files into 'dazzle google engine' project
        drag-and-drop files from /tmp/dazzle/dazzle-webapp into Eclipse:/dazzle/war/.  (do not select WEB-INF folder)

6- Import Jars to WEB-INF/lib
     drag and drop jar files from /tmp/dazzle/jars into 'dazzle google engine' Eclipse:/dazzle/war/WEB-INF/lib
     biojava.jar, bytecode.jar, dasmi-model.jar, servelt-api-2.3.jar, dazzle.jar

6- Update web.xml file in Eclipse:/dazzle/war/WEB-INF/
         
          [....]
          <servlet>
          <servlet-name>Dazzle</servlet-name>
         <servlet-class>org.biojava.servlets.dazzle.DazzleServlet</servlet-class>
         </servlet>

         <servlet-mapping>
         <servlet-name>Dazzle</servlet-name>
         <url-pattern>/das/*</url-pattern>
         </servlet-mapping>

        <welcome-file-list>
		<welcome-file>das_welcome.html</welcome-file>
	</welcome-file-list>
        [...]

6- Run application in Eclipse as web Application (standalone test)
        check with your web browser: http://localhost:8080/das/dsn

7- If it works, you can create a Google App Engine Application ID and deploy your dazzle server on the cloud.
     http://code.google.com/appengine/docs/java/tools/uploadinganapp.html

________________________________________
From: Jonathan Warren [jw12 at sanger.ac.uk]
Sent: Monday, August 10, 2009 5:28 PM
To: Rouilly, Vincent
Cc: Andreas Prlic; Richard Holland
Subject: Re: [Biojava-l] BioJava, Dazzle and Google App Engine (Java version)

I had a look at this and it seems the container works differently from tomcat and resin. I think you may have to change the way dazzle gets it's datasource information?
The problem is that the google servlet adds dazzle to this nameComponents list whereas tomcat and resin don't when reading the xml config:

public Set getDataSourceIDs(List nameComponents, HttpServletRequest req)
throws DataSourceException
{
System.err.println("Address: " + req.getRemoteAddr());
System.err.println("Host: " + req.getRemoteHost());


if (nameComponents.size() != 0) {
System.out.println(nameComponents.toString());
throw new DataSourceException("Basic installation only covers flat namespace of data-sources");
}



I got some requests to work by adding
/dazzle/* in the web.xml like this:
 <servlet-mapping>
      <servlet-name>DazzleServerMain</servlet-name>
      <url-pattern>/dazzle/*</url-pattern>
    </servlet-mapping>

however some requests then work and others don't.

Maybe the other guys have some ideas, but I couldn't see a particular reason or quick hack to overcome the difference.

On 9 Aug 2009, at 11:50, Rouilly, Vincent wrote:


Hi,

thanks for your quick replies.

Sorry, I forgot to mention that I am also using the stand-alone Google Engine for now, with the Eclipse plug-in.
And, my development platform is a Mac OS 10.4.11, with JRE 1.6 from Soylatte, and Eclipse v3.4.2.

I have read through the dazzle documentation, but I still can't get it to work within the Google App Engine / Eclipse environment.
I am not very familiar with Eclipse, so it is very likely that I am not doing things right.

Here is the process I have followed to give Dazzle  a try to on the Google Engine. But remember, this process doesn't work for me.
I hope it makes sense, and that someone can point me to the right direction.

many thanks,
Vincent.

1- Download 'dazzle' in /tmp/  using subversion (http://biojava.org/wiki/Dazzle):
svn checkout http://www.derkholm.net/svn/repos/dazzle/trunk /tmp/dazzle

2- Create new Google App Engine project from Eclipse (after Google Engine plugin installation):
Project name: dazzle
Package: org.biojava.servlets.dazzle
Uncheck 'Use Google Web Toolkit'
Finish

3- Import 'dazzle' Jar files into 'dazzle google engine' project
import from /tmp/dazzle/jars: bioJava.jar, bytecode.jar, dasmi-model.jar, servlet-api-2.3.jar
In Eclipse, 'dazzle' project Properties -> Java Build Path -> Add  External Jars

4- Import 'dazzle' src files into 'dazzle google engine' project
drag-and-drop /tmp/dazzle/src/org folder into 'Eclipse:/ dazzle/src' folder

5- Import 'dazzle' ressources folder into 'dazzle google engine' project
drag-and-drop /tmp/dazzle/resources folder into 'Eclipse:/dazzle' folder

5- Import WEB-INF files into 'dazzle google engine' project
drag-and-drop files from /tmp/dazzle/dazzle-webapp into Eclipse:/dazzle/war/.

6- Update web.xml file in Eclipse:/dazzle/war/WEB-INF/
<servlet>
     <servlet-name>DazzleServerMain</servlet-name>
      <servlet-class>org.biojava.servlets.dazzle.DazzleServlet</servlet-class>
    </servlet>

    <servlet-mapping>
      <servlet-name>DazzleServerMain</servlet-name>
      <url-pattern>/*</url-pattern>
    </servlet-mapping>

welcome-file-list: dazzle-welcome.html

6- Run application as web Application in Eclipse
check with web browser: http://localhost:8080/das/dsn



________________________________________
From: andreas.prlic at gmail.com<mailto:andreas.prlic at gmail.com> [andreas.prlic at gmail.com<mailto:andreas.prlic at gmail.com>] On Behalf Of Andreas Prlic [andreas at sdsc.edu<mailto:andreas at sdsc.edu>]
Sent: Saturday, August 08, 2009 9:50 PM
To: Rouilly, Vincent
Subject: Re: [Biojava-l] BioJava, Dazzle and Google App Engine (Java version)

Hi Vincent,

did you try following the instructions at
http://biojava.org/wiki/Dazzle ?

I have never tried to run it using the google app engine, but it works fine for me using Eclipse or standalone... Also have a look at
http://biojava.org/wiki/Dazzle:deployment

Hope that helps,
Andreas



On Sat, Aug 8, 2009 at 10:33 AM, Rouilly, Vincent <vincent.rouilly03 at imperial.ac.uk<mailto:vincent.rouilly03 at imperial.ac.uk>> wrote:
Hi,

first of all, congratulations and thanks to all BioJava contributors for providing such a great library.

Over the last few days, I have been trying to use BioJava on the Google App Engine (with its latest Java support).
http://code.google.com/appengine/docs/java/gettingstarted/

Has anyone got experience with that ?

I am especially interested in setting up a Dazzle DAS server on the google app engine (basic configuration).
It would be a great way for people to easily share their data through DAS.

However, whatever DAS request, I always get the exceptions:
DataSourceException("Basic installation only covers flat namespace of data-sources");

Any suggestions ?

many thanks,

Vincent.

_______________________________________________
Biojava-l mailing list  -  Biojava-l at lists.open-bio.org<mailto:Biojava-l at lists.open-bio.org>
http://lists.open-bio.org/mailman/listinfo/biojava-l


Jonathan Warren
Senior Developer and DAS coordinator
jw12 at sanger.ac.uk<mailto:jw12 at sanger.ac.uk>
Ext: 2314
Telephone: 01223 492314






-- The Wellcome Trust Sanger Institute is operated by Genome Research Limited, a charity registered in England with number 1021457 and a compa ny registered in England with number 2742969, whose registered office is 2 15 Euston Road, London, NW1 2BE.




More information about the Biojava-l mailing list