Project

General

Profile

« Previous | Next » 

Revision 3195

Added by berkley over 17 years ago

updated the ajax code to make it easier to install. also updated the installation instructions.

View differences:

lib/ajax/INSTALL
1 1
Author: Chad Berkley
2 2
Date: 3/5/2007
3 3

  
4
This file covers deploying the gwt created ajax code and servlet to a non-google version of tomcat.  This allows for the installation of the servlet(s) along side a normal metacat installation.
4
This file covers deploying the gwt created ajax code and servlet to a non-google
5
version of tomcat.  This allows for the installation of the servlet(s) along 
6
side a normal metacat installation.  This file assumes you've already done 
7
the steps highlighted in the README file.
5 8

  
6
1) Create a servlet on your tomcat instance called "rpc".  This is a simple servlet that just runs the gogle remote procedure call (rpc) services.  Use the web.xml file from the ./tomcat/webapps/ROOT/WEB-INF directory.  You'll also need to copy all of the gwt jar files from your gwt installation as well as all of the jar files in ./lib
9
1) Create a servlet on your tomcat instance called "rpc".  This is a simple 
10
servlet that just runs the google remote procedure call (rpc) services.  Use 
11
the web.xml file from the ./tomcat/webapps/ROOT/WEB-INF directory.  You'll 
12
also need to copy all of the gwt jar files from your gwt installation as well 
13
as all of the jar files in ./lib.  Use the gwt-user.jar and gwt-dev.jar from 
14
metacat/lib.  If you use the ones from the gwt distro, tomcat won't load them
15
due to the presence of javax.servlet.Servlet.
7 16

  
8
2) copy ./src/org/kepler/web/service/KeplerServiceServlet.java to metacat/src/org/kepler/web/service/ and update the KeplerServiceServlet.java file with the correct url to your metacat servlet (line 6 in the code).  
17
2) copy ./src/org/kepler/web/service/KeplerServiceServlet.java to 
18
metacat/src/org/kepler/web/service/ and update the KeplerServiceServlet.java 
19
Edit the file with the correct url to your metacat servlet (line 6 in the code).  
20
Make sure the moduleRelativeURL exactly matches the url that will be browsed
21
to!  I.E. Don't use "localhost" if you intend to browse to an actual machine
22
name.  This confuses the RPC and will cause problems.
9 23

  
10
3) run 'ant package' (from the ajax dir) and copy the newly created kepler-web.jar file to metacat/lib/
24
3) run 'ant package' (from the ajax dir) and copy the newly created 
25
kepler-web.jar file to metacat/lib/.  Make sure you updated the hard coded
26
servlet paths in the java code before doing this.
11 27

  
12 28
4) run 'ant install' from your metacat directory
13 29

  
14 30
5) make sure tomcat restarts
15 31

  
16
6) run ./KeplerClient-compile and copy the contents of the www directory to some web accessible location, then browse to the KeplerClient.html file and the javascript should run.  Note that you may need to update any hard coded servlet paths in the ajax code before copying the www files to the web location.
32
6) run ./KeplerClient-compile and copy the contents of the www directory 
33
to some web accessible location, then browse to the KeplerClient.html file 
34
and the javascript should run.  
17 35

  
18 36
--------------------------------
19
If this doesn't work for some reason, keep in mind the main things you need.  They are:
37
If this doesn't work for some reason, keep in mind the main things you need.  
38
They are:
20 39
* the rpc servlet
21
* the KeplerServiceServlet servlet.  In the web.xml file, I have called this 'gwt' so the address will be: http://server:8080/servletpath/gwt
22
* the compile javascript (ajax) code
40
* the KeplerServiceServlet servlet.  In the web.xml file, I have called this 
41
  'gwt' so the address will be: http://server:8080/servletpath/gwt
42
* the compiled javascript (ajax) code
23 43
* hard coded server/servlet paths correctly changed
24 44
* all jar files accessible to tomcat
25 45

  
lib/ajax/KeplerClient-shell
1 1
#!/bin/sh
2 2
APPDIR=`dirname $0`;
3
GWT=/Users/berkley/tools/gwt
3
GWT=/home/berkley/tools/gwt
4 4
CLASSPATH="$APPDIR/src:$APPDIR/bin:$GWT/gwt-user.jar:$GWT/gwt-dev.jar:$APPDIR/lib/client.jar:$APPDIR/lib/utilities.jar:$APPDIR/lib/xalan.jar:$APPDIR/lib/xml-apis.jar"
5 5

  
6
java -XstartOnFirstThread -cp $CLASSPATH com.google.gwt.dev.GWTShell -out "$APPDIR/www" "$@" org.kepler.web.KeplerClient/KeplerClient.html;
6
java -cp $CLASSPATH com.google.gwt.dev.GWTShell -out "$APPDIR/www" "$@" org.kepler.web.KeplerClient/KeplerClient.html;
lib/ajax/KeplerClient-compile
1 1
#!/bin/sh
2 2

  
3 3
APPDIR=`dirname $0`;
4
GWT=/Users/berkley/tools/gwt
4
GWT=/home/berkley/tools/gwt
5 5
CLASSPATH="$APPDIR/src:$APPDIR/bin:$GWT/gwt-user.jar:$GWT/gwt-dev.jar:$APPDIR/lib/client.jar:$APPDIR/lib/utilities.jar:$APPDIR/lib/xalan.jar:$APPDIR/lib/xml-apis.jar"
6 6

  
7
java -XstartOnFirstThread -cp $CLASSPATH com.google.gwt.dev.GWTCompiler -out "$APPDIR/www" "$@" org.kepler.web.KeplerClient;
7
java -cp $CLASSPATH com.google.gwt.dev.GWTCompiler -out "$APPDIR/www" "$@" org.kepler.web.KeplerClient;
lib/ajax/src/org/kepler/web/service/KeplerServiceServlet.java
20 20

  
21 21
public class KeplerServiceServlet extends RemoteServiceServlet implements KeplerService
22 22
{
23
  private String url = "http://localhost:8080/kepler/metacat";
23
  private String url = "http://library.kepler-project.org/kepler/metacat";
24 24
  
25 25
  /**
26 26
   * takes in a query string and a sessionid and returns a resultset
lib/ajax/src/org/kepler/web/client/MetacatResultsWidget.java
47 47
      // Use a module-relative URLs to ensure that this client code can find 
48 48
      // its way home, even when the URL changes (as might happen when you 
49 49
      // deploy this as a webapp under an external servlet container). 
50
      String moduleRelativeURL = GWT.getModuleBaseURL() + "kepler";      
51
      moduleRelativeURL = "http://offhegoes.kicks-ass.net:8080/kepler/gwt";
50
      //String moduleRelativeURL = GWT.getModuleBaseURL() + "kepler";      
51
//      String moduleRelativeURL = "http://library.kepler-project.org/kepler/gwt";
52
      String moduleRelativeURL = "http://dana:8080/kepler/gwt";
52 53
      System.out.println("connection url: " + moduleRelativeURL);
53 54
      target.setServiceEntryPoint(moduleRelativeURL);
54 55
    }
lib/ajax/src/org/kepler/web/client/DynaTableWidget.java
176 176
      
177 177
      setText(title);
178 178

  
179
      Frame iframe = new Frame("http://offhegoes.kicks-ass.net:8080/kepler/metacat?action=read&docid=" + docid + "&qformat=kepler");
179
      Frame iframe = new Frame("http://library.kepler-project.org/kepler/metacat?action=read&docid=" + docid + "&qformat=kepler");
180 180
      Button closeButton = new Button("Close", this);
181 181
      /*HTML msg = new HTML(
182 182
        "<center>This is an example of a standard dialog box component.<br>  "
lib/ajax/README
3 3

  
4 4
Setup
5 5
-----
6
1) Make sure you have the google web toolkit installed.  You can get it from http://code.google.com/webtoolkit/.  From now on, I will refer to the google web toolkit directory as the "gwt" directory.
7
2) Make a symbolic link in the gwt directory so that gwt-dev.jar -> gwt-dev-xxx.jar where xxx is either "mac", "linux" or "windows".  This just makes the scripting easier to deal with.
8
3) Edit the KeplerClient-shell file and make sure $GWT points to your gwt installation.  Do the same for KeplerClient-compile
6
1) Make sure you have the google web toolkit installed.  You can get it from 
7
http://code.google.com/webtoolkit/.  From now on, I will refer to the google 
8
web toolkit directory as the "gwt" directory.
9
2) Make a symbolic link in the gwt directory so that 
10
gwt-dev.jar -> gwt-dev-xxx.jar where xxx is either "mac", "linux" or "windows".
11
This just makes the scripting easier to deal with.
12
3) Edit the KeplerClient-shell file and make sure $GWT points to your 
13
gwt installation.  Do the same for KeplerClient-compile
9 14

  
10 15
Building
11 16
--------
12
Run the KeplerClient-shell script.  Upon successful compilation, you should see two windows open.  One is the tomcat server shell, the other is a test browser where you will see the web page.  
17
Run the KeplerClient-shell script.  Upon successful compilation, you should 
18
see two windows open.  One is the tomcat server shell, the other is a test 
19
browser where you will see the web page.  
13 20

  
14 21
Testing
15 22
-------
16
You can use the -shell file for incremental building and testing.  If you want to "clean" the project, you can use the ant build.xml file.  The build file really is not needed.
23
You can use the -shell file for incremental building and testing.  If you want 
24
to "clean" the project, you can use the ant build.xml file.  The build file 
25
really is not needed.
17 26

  
18 27
Installation/Deployment
19 28
-----------------------
20
Once you have a working product and you want to deploy to a normal instance of Tomcat, you can first test that your code works under a normal browser by clicking the "compile/test" button on the google browser.  This will open your page in whatever your default browswer is.  Your server side code is still running on the google tomcat instance (port 8888).  If you want to deploy the servlet and client side code to another instance of Tomcat, follow the instructions in the INSTALL file.
29
Once you have a working product and you want to deploy to a normal instance 
30
of Tomcat, you can first test that your code works under a normal browser by 
31
clicking the "compile/test" button on the google browser.  This will open your 
32
page in whatever your default browswer is.  Your server side code is still 
33
running on the google tomcat instance (port 8888).  If you want to deploy the 
34
servlet and client side code to another instance of Tomcat, follow the 
35
instructions in the INSTALL file.
21 36

  
22 37
A note on using different OSs
23 38
-----------------------------
24
There are a few differences when moving between windows, linux and osx.  On OSX, the -XstartOnFirstThread flag must be set in the KeplerClient-shell and KeplerClient-compile scripts.  Also, make sure you make a symlink for the gwt-dev jar file.  For some reason, google renames this jar depending on what system you download gwt for.  
39
There are a few differences when moving between windows, linux and osx.  
40
On OSX, the -XstartOnFirstThread flag must be set in the KeplerClient-shell 
41
and KeplerClient-compile scripts.  Also, make sure you make a symlink for the 
42
gwt-dev jar file.  For some reason, google renames this jar depending on what 
43
system you download gwt for.  

Also available in: Unified diff