![]() |
![]() Fall Semester 2002 |
(Note: the notes below are funny, in the sense that
The database needs to be created and organized, so take a look at this.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt burrowww.cs.indiana.edu%
Here's the text of this file:burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/design burrowww.cs.indiana.edu% ls -l total 2 -rwxr-xr-x 1 dgerman faculty 1208 Sep 2 2001 mysql_forum_dump.txt burrowww.cs.indiana.edu%
So let's follow these notes to create the database.# MySQL dump 8.8 # # Host: localhost Database: forum #-------------------------------------------------------- # Server version 3.23.23-beta # # Table structure for table 'board' # CREATE TABLE board ( id bigint(20) DEFAULT '0' NOT NULL, name char(80) DEFAULT '' NOT NULL, description char(255) DEFAULT '' NOT NULL, PRIMARY KEY (id) ); # # Dumping data for table 'board' # INSERT INTO board VALUES (0,'XSLT Basics','How to create and use XSLT stylesheets and processors'); INSERT INTO board VALUES (1,'JAXP Programming Techniques','How to use JAXP 1.1'); # # Table structure for table 'message' # CREATE TABLE message ( id bigint(20) DEFAULT '0' NOT NULL, inReplyToID bigint(20) DEFAULT '0' NOT NULL, createMonth int(11) DEFAULT '0' NOT NULL, createDay int(11) DEFAULT '0' NOT NULL, createYear int(11) DEFAULT '0' NOT NULL, boardID bigint(20) DEFAULT '0' NOT NULL, subject varchar(80) DEFAULT '' NOT NULL, authorEmail varchar(80) DEFAULT '' NOT NULL, msgText text DEFAULT '' NOT NULL, PRIMARY KEY (id), KEY inReplyToID (inReplyToID), KEY createMonth (createMonth), KEY createDay (createDay), KEY boardID (boardID) );
It looks like I have plenty of tables, let's remove them all.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/design burrowww.cs.indiana.edu% mysql -ua348 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 678 to server version: 3.23.27-beta Type 'help;' or '\h' for help. Type '\c' to clear the buffer mysql> use a348 Database changed mysql> show tables like '%dgerman%'; +----------------------------+ | Tables_in_a348 (%dgerman%) | +----------------------------+ | dgerman_ADMINISTRATORS | | dgerman_AUTHORS | | dgerman_BOOKS | | dgerman_BooksAndAuthors | | dgerman_BooksAndSubjects | | dgerman_PATRONS | | dgerman_ReviewAndRate | | dgerman_SUBJECTS | | dgerman_TRANSACTIONS | | dgerman_Transactions | | dgerman_accumulator | | dgerman_hangman | | dgerman_person | | dgerman_php_books | | dgerman_php_catboo | | dgerman_php_categories | | dgerman_student | | dgermant_AUTHORS | | dgermant_Transactions | +----------------------------+ 19 rows in set (0.02 sec) mysql>
Let's now define the new ones.mysql> show tables like '%dgerman%'; +----------------------------+ | Tables_in_a348 (%dgerman%) | +----------------------------+ | dgerman_accumulator | | dgerman_hangman | | dgerman_php_books | | dgerman_php_catboo | | dgerman_php_categories | +----------------------------+ 5 rows in set (0.02 sec) mysql>
Now we need to create the second table.mysql> CREATE TABLE dgerman_board ( -> id bigint(20) DEFAULT '0' NOT NULL, -> name char(80) DEFAULT '' NOT NULL, -> description char(255) DEFAULT '' NOT NULL, -> PRIMARY KEY (id) -> ); Query OK, 0 rows affected (0.00 sec) mysql> describe dgerman_board; +-------------+------------+------+-----+---------+-------+---------------------------------+ | Field | Type | Null | Key | Default | Extra | Privileges | +-------------+------------+------+-----+---------+-------+---------------------------------+ | id | bigint(20) | | PRI | 0 | | select,insert,update,references | | name | char(80) | | | | | select,insert,update,references | | description | char(255) | | | | | select,insert,update,references | +-------------+------------+------+-----+---------+-------+---------------------------------+ 3 rows in set (0.01 sec) mysql> INSERT into dgerman_board -> VALUES (0,'XSLT Basics','How to create and use XSLT stylesheets and processors'); Query OK, 1 row affected (0.00 sec) mysql> INSERT into dgerman_board -> VALUES (1,'JAXP Programming Techniques','How to use JAXP 1.1'); Query OK, 1 row affected (0.00 sec) mysql> select * from dgerman_board; +----+-----------------------------+-------------------------------------------------------+ | id | name | description | +----+-----------------------------+-------------------------------------------------------+ | 0 | XSLT Basics | How to create and use XSLT stylesheets and processors | | 1 | JAXP Programming Techniques | How to use JAXP 1.1 | +----+-----------------------------+-------------------------------------------------------+ 2 rows in set (0.00 sec) mysql>
So now we have the (two) tables, one with the kind of data it needs inside, too.mysql> CREATE TABLE dgerman_message ( -> id bigint(20) DEFAULT '0' NOT NULL, -> inReplyToID bigint(20) DEFAULT '0' NOT NULL, -> createMonth int(11) DEFAULT '0' NOT NULL, -> createDay int(11) DEFAULT '0' NOT NULL, -> createYear int(11) DEFAULT '0' NOT NULL, -> boardID bigint(20) DEFAULT '0' NOT NULL, -> subject varchar(80) DEFAULT '' NOT NULL, -> authorEmail varchar(80) DEFAULT '' NOT NULL, -> msgText text DEFAULT '' NOT NULL, -> PRIMARY KEY (id), -> KEY inReplyToID (inReplyToID), -> KEY createMonth (createMonth), -> KEY createDay (createDay), -> KEY boardID (boardID) -> ); Query OK, 0 rows affected (0.00 sec) mysql> describe dgerman_message; +-------------+-------------+------+-----+---------+-------+---------------------------------+ | Field | Type | Null | Key | Default | Extra | Privileges | +-------------+-------------+------+-----+---------+-------+---------------------------------+ | id | bigint(20) | | PRI | 0 | | select,insert,update,references | | inReplyToID | bigint(20) | | MUL | 0 | | select,insert,update,references | | createMonth | int(11) | | MUL | 0 | | select,insert,update,references | | createDay | int(11) | | MUL | 0 | | select,insert,update,references | | createYear | int(11) | | | 0 | | select,insert,update,references | | boardID | bigint(20) | | MUL | 0 | | select,insert,update,references | | subject | varchar(80) | | | | | select,insert,update,references | | authorEmail | varchar(80) | | | | | select,insert,update,references | | msgText | text | | | | | select,insert,update,references | +-------------+-------------+------+-----+---------+-------+---------------------------------+ 9 rows in set (0.00 sec) mysql>
I have a lot of source code to compile, and it's located in
Let's take a look at it./u/dgerman/public/javaxslt/discussion/source
Let's now see what we need to do to be able to compile all this code.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/source burrowww.cs.indiana.edu% ls -ld * -rwxr-xr-x 1 dgerman faculty 533 Aug 14 15:20 BoardSummary.java -rwxr-xr-x 1 dgerman faculty 1409 Aug 14 15:21 BoardSummaryImpl.java -rwxr-xr-x 1 dgerman faculty 1472 Aug 14 15:23 BoardSummaryJDOM.java -rwxr-xr-x 1 dgerman faculty 5607 Aug 14 15:21 DBUtil.java -rwxr-xr-x 1 dgerman faculty 2689 Aug 14 15:20 DataAdapter.java -rwxr-xr-x 1 dgerman faculty 749 Aug 14 15:20 DataException.java -rwxr-xr-x 1 dgerman faculty 941 Aug 14 15:20 DateUtil.java -rwxr-xr-x 1 dgerman faculty 1350 Aug 14 15:20 DayMonthYear.java -rwxr-xr-x 1 dgerman faculty 1558 Aug 14 15:22 ErrorRenderer.java -rwxr-xr-x 1 dgerman faculty 4449 Aug 14 15:21 FakeDataAdapter.java -rwxr-xr-x 1 dgerman faculty 1467 Aug 14 15:23 ForumConfig.java -rwxr-xr-x 1 dgerman faculty 2393 Aug 14 15:22 ForumServlet.java -rwxr-xr-x 1 dgerman faculty 655 Aug 14 15:23 HomeJDOM.java -rwxr-xr-x 1 dgerman faculty 1167 Aug 14 15:22 HomeRenderer.java -rwxr-xr-x 1 dgerman faculty 640 Aug 14 15:22 HomeReqHandler.java -rwxr-xr-x 1 dgerman faculty 11121 Aug 14 15:21 JdbcDataAdapter.java -rwxr-xr-x 1 dgerman faculty 229 Aug 14 15:20 Message.java -rwxr-xr-x 1 dgerman faculty 693 Aug 14 15:21 MessageImpl.java -rwxr-xr-x 1 dgerman faculty 824 Aug 14 15:21 MessageSummary.java -rwxr-xr-x 1 dgerman faculty 2052 Aug 14 15:21 MessageSummaryImpl.java -rwxr-xr-x 1 dgerman faculty 2767 Aug 14 15:21 MessageTree.java -rwxr-xr-x 1 dgerman faculty 2214 Aug 14 15:21 MonthYear.java -rwxr-xr-x 1 dgerman faculty 1630 Aug 14 15:23 PostMessageJDOM.java -rwxr-xr-x 1 dgerman faculty 3134 Aug 14 15:22 PostMsgRenderer.java -rwxr-xr-x 1 dgerman faculty 5717 Aug 14 15:22 PostMsgReqHandler.java -rwxr-xr-x 1 dgerman faculty 389 Aug 14 15:22 Renderer.java -rwxr-xr-x 1 dgerman faculty 739 Aug 14 15:22 ReqHandler.java -rwxr-xr-x 1 dgerman faculty 1495 Aug 14 15:22 ReqHandlerRegistry.java -rwxr-xr-x 1 dgerman faculty 1859 Aug 14 15:23 ViewMessageJDOM.java -rwxr-xr-x 1 dgerman faculty 2513 Aug 14 15:23 ViewMonthJDOM.java -rwxr-xr-x 1 dgerman faculty 1211 Aug 14 15:23 ViewMonthRenderer.java -rwxr-xr-x 1 dgerman faculty 1524 Aug 14 15:23 ViewMonthReqHandler.java -rwxr-xr-x 1 dgerman faculty 1040 Aug 14 15:23 ViewMsgRenderer.java -rwxr-xr-x 1 dgerman faculty 1548 Aug 14 15:23 ViewMsgReqHandler.java -rwxr-xr-x 1 dgerman faculty 2558 Aug 14 15:23 XSLTRenderHelper.java burrowww.cs.indiana.edu%
After this weburrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/common burrowww.cs.indiana.edu% ls -l total 30 -rw-r--r-- 1 dgerman faculty 28168 May 31 20:15 bookUtils.jar drwxr-xr-x 3 dgerman faculty 512 May 31 20:14 com drwxr-xr-x 3 dgerman faculty 512 Sep 2 2001 src burrowww.cs.indiana.edu% cp bookUtils.jar ~/public/javaxslt/lib burrowww.cs.indiana.edu% cd ~/public/javaxslt/lib burrowww.cs.indiana.edu% ls -l total 1377 -rwxr-xr-x 1 dgerman faculty 656 Sep 2 2001 README.txt -rw-r--r-- 1 dgerman faculty 28168 Aug 14 16:00 bookUtils.jar -rwxr-xr-x 1 dgerman faculty 187162 Sep 2 2001 crimson_1.1.jar -rwxr-xr-x 1 dgerman faculty 28404 Sep 2 2001 jaxp_1.1.jar -rwxr-xr-x 1 dgerman faculty 78541 Sep 2 2001 jdom_beta6.jar -rwxr-xr-x 1 dgerman faculty 117522 Sep 2 2001 junit_3.7.jar -rwxr-xr-x 1 dgerman faculty 109927 Sep 2 2001 mm.mysql-2.0.4-bin.jar -rwxr-xr-x 1 dgerman faculty 75849 Sep 2 2001 servlet_2.3.jar -rwxr-xr-x 1 dgerman faculty 732330 Sep 2 2001 xalan_2.1.jar burrowww.cs.indiana.edu%
jar xvf
the archives one by one, clean up and we have:
Now compiling is done in stages.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/lib burrowww.cs.indiana.edu% ls -l total 3 drwxr-xr-x 3 dgerman faculty 512 Aug 14 16:01 com drwxr-xr-x 4 dgerman faculty 512 Aug 14 16:06 javax drwxr-xr-x 7 dgerman faculty 512 Aug 14 16:07 org burrowww.cs.indiana.edu%
We need to work out the dependencies. Here's what we have:burrowww.cs.indiana.edu% grep -i "package com.oreilly.forum.domain" *.java BoardSummary.java:package com.oreilly.forum.domain; DateUtil.java:package com.oreilly.forum.domain; DayMonthYear.java:package com.oreilly.forum.domain; Message.java:package com.oreilly.forum.domain; MessageImpl.java:package com.oreilly.forum.domain; MessageSummary.java:package com.oreilly.forum.domain; MessageSummaryImpl.java:package com.oreilly.forum.domain; MessageTree.java:package com.oreilly.forum.domain; MonthYear.java:package com.oreilly.forum.domain; burrowww.cs.indiana.edu% javac -d . BoardSummary.java \ DateUtil.java \ DayMonthYear.java \ Message.java \ MessageImpl.java \ MessageSummary.java \ MessageSummaryImpl.java \ MessageTree.java \ MonthYear.java burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/source burrowww.cs.indiana.edu%
com.oreilly.forum
and com.oreilly.forum.domain
don't need anything
com.oreilly.forum.adapter
needs only classes from the packages above
com.oreilly.forum.fakeimpl
/xml
/jdbcimpl
need only packages listed above
com.oreilly.forum.servlet
needs classes from the packages listed above
Turns out this is not needed.burrowww.cs.indiana.edu% javac -d . BoardSummary.java \ DateUtil.java \ DayMonthYear.java \ Message.java \ MessageImpl.java \ MessageSummary.java \ MessageSummaryImpl.java \ MessageTree.java \ MonthYear.java burrowww.cs.indiana.edu%
Turns out things are even more complicated.burrowww.cs.indiana.edu% diff JdbcDataAdapter.java JdbcDataAdapter.java~ 6d5 < import com.oreilly.forum.fakeimpl.*; burrowww.cs.indiana.edu%
Theburrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/source burrowww.cs.indiana.edu% ls -ld ../* drwxr-xr-x 2 dgerman faculty 512 Sep 2 2001 ../design drwxr-xr-x 2 dgerman faculty 512 Sep 2 2001 ../docroot drwxr-xr-x 2 dgerman faculty 512 Sep 2 2001 ../prototype drwxr-xr-x 3 dgerman faculty 512 Aug 21 21:39 ../source drwxr-xr-x 3 dgerman faculty 512 Sep 2 2001 ../src -rwxr-xr-x 1 dgerman faculty 1321 Sep 2 2001 ../web.xml drwxr-xr-x 2 dgerman faculty 512 Sep 2 2001 ../xslt burrowww.cs.indiana.edu%
source
and src
directories are identical. Let's see if we can compile the packages.
We'll be doing this one by one.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/source burrowww.cs.indiana.edu% du -a . 3 ./com/oreilly/forum/adapter/DataAdapter.java 1 ./com/oreilly/forum/adapter/DataException.java 5 ./com/oreilly/forum/adapter 1 ./com/oreilly/forum/domain/BoardSummary.java 2 ./com/oreilly/forum/domain/BoardSummaryImpl.java 1 ./com/oreilly/forum/domain/DateUtil.java 2 ./com/oreilly/forum/domain/DayMonthYear.java 1 ./com/oreilly/forum/domain/Message.java 1 ./com/oreilly/forum/domain/MessageImpl.java 1 ./com/oreilly/forum/domain/MessageSummary.java 3 ./com/oreilly/forum/domain/MessageSummaryImpl.java 3 ./com/oreilly/forum/domain/MessageTree.java 3 ./com/oreilly/forum/domain/MonthYear.java 19 ./com/oreilly/forum/domain 2 ./com/oreilly/forum/fakeimpl/BoardSummaryImpl.java 5 ./com/oreilly/forum/fakeimpl/FakeDataAdapter.java 8 ./com/oreilly/forum/fakeimpl 6 ./com/oreilly/forum/jdbcimpl/DBUtil.java 11 ./com/oreilly/forum/jdbcimpl/JdbcDataAdapter.java 18 ./com/oreilly/forum/jdbcimpl 2 ./com/oreilly/forum/servlet/ErrorRenderer.java 3 ./com/oreilly/forum/servlet/ForumServlet.java 2 ./com/oreilly/forum/servlet/HomeRenderer.java 1 ./com/oreilly/forum/servlet/HomeReqHandler.java 4 ./com/oreilly/forum/servlet/PostMsgRenderer.java 6 ./com/oreilly/forum/servlet/PostMsgReqHandler.java 1 ./com/oreilly/forum/servlet/Renderer.java 1 ./com/oreilly/forum/servlet/ReqHandler.java 2 ./com/oreilly/forum/servlet/ReqHandlerRegistry.java 2 ./com/oreilly/forum/servlet/ViewMonthRenderer.java 2 ./com/oreilly/forum/servlet/ViewMonthReqHandler.java 2 ./com/oreilly/forum/servlet/ViewMsgRenderer.java 2 ./com/oreilly/forum/servlet/ViewMsgReqHandler.java 3 ./com/oreilly/forum/servlet/XSLTRenderHelper.java 34 ./com/oreilly/forum/servlet 2 ./com/oreilly/forum/xml/BoardSummaryJDOM.java 1 ./com/oreilly/forum/xml/HomeJDOM.java 2 ./com/oreilly/forum/xml/PostMessageJDOM.java 2 ./com/oreilly/forum/xml/ViewMessageJDOM.java 3 ./com/oreilly/forum/xml/ViewMonthJDOM.java 11 ./com/oreilly/forum/xml 2 ./com/oreilly/forum/ForumConfig.java 98 ./com/oreilly/forum 99 ./com/oreilly 100 ./com 101 . burrowww.cs.indiana.edu%
Here's the list of files that contain the source code:burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/source burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/domain/*.java burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/*.java burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/adapter/*.java burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/fakeimpl/*.java burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/xml/*.java burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/jdbcimpl/*.java burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/servlet/*.java burrowww.cs.indiana.edu% ls -l total 1 drwxr-xr-x 3 dgerman faculty 512 Aug 21 21:39 com
Here's the list of files that contain the compiled classes:burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/source burrowww.cs.indiana.edu% du -a . | grep java 3 ./com/oreilly/forum/adapter/DataAdapter.java 1 ./com/oreilly/forum/adapter/DataException.java 1 ./com/oreilly/forum/domain/BoardSummary.java 2 ./com/oreilly/forum/domain/BoardSummaryImpl.java 1 ./com/oreilly/forum/domain/DateUtil.java 2 ./com/oreilly/forum/domain/DayMonthYear.java 1 ./com/oreilly/forum/domain/Message.java 1 ./com/oreilly/forum/domain/MessageImpl.java 1 ./com/oreilly/forum/domain/MessageSummary.java 3 ./com/oreilly/forum/domain/MessageSummaryImpl.java 3 ./com/oreilly/forum/domain/MessageTree.java 3 ./com/oreilly/forum/domain/MonthYear.java 2 ./com/oreilly/forum/fakeimpl/BoardSummaryImpl.java 5 ./com/oreilly/forum/fakeimpl/FakeDataAdapter.java 6 ./com/oreilly/forum/jdbcimpl/DBUtil.java 11 ./com/oreilly/forum/jdbcimpl/JdbcDataAdapter.java 2 ./com/oreilly/forum/servlet/ErrorRenderer.java 3 ./com/oreilly/forum/servlet/ForumServlet.java 2 ./com/oreilly/forum/servlet/HomeRenderer.java 1 ./com/oreilly/forum/servlet/HomeReqHandler.java 4 ./com/oreilly/forum/servlet/PostMsgRenderer.java 6 ./com/oreilly/forum/servlet/PostMsgReqHandler.java 1 ./com/oreilly/forum/servlet/Renderer.java 1 ./com/oreilly/forum/servlet/ReqHandler.java 2 ./com/oreilly/forum/servlet/ReqHandlerRegistry.java 2 ./com/oreilly/forum/servlet/ViewMonthRenderer.java 2 ./com/oreilly/forum/servlet/ViewMonthReqHandler.java 2 ./com/oreilly/forum/servlet/ViewMsgRenderer.java 2 ./com/oreilly/forum/servlet/ViewMsgReqHandler.java 3 ./com/oreilly/forum/servlet/XSLTRenderHelper.java 2 ./com/oreilly/forum/xml/BoardSummaryJDOM.java 1 ./com/oreilly/forum/xml/HomeJDOM.java 2 ./com/oreilly/forum/xml/PostMessageJDOM.java 2 ./com/oreilly/forum/xml/ViewMessageJDOM.java 3 ./com/oreilly/forum/xml/ViewMonthJDOM.java 2 ./com/oreilly/forum/ForumConfig.java burrowww.cs.indiana.edu%
They may or may not be one to one.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/source burrowww.cs.indiana.edu% du -a . | grep .class 2 ./com/oreilly/forum/adapter/DataAdapter.class 1 ./com/oreilly/forum/adapter/DataException.class 1 ./com/oreilly/forum/domain/BoardSummary.class 1 ./com/oreilly/forum/domain/BoardSummaryImpl.class 1 ./com/oreilly/forum/domain/DateUtil.class 2 ./com/oreilly/forum/domain/DayMonthYear.class 2 ./com/oreilly/forum/domain/MonthYear.class 1 ./com/oreilly/forum/domain/Message.class 1 ./com/oreilly/forum/domain/MessageSummary.class 1 ./com/oreilly/forum/domain/MessageImpl.class 2 ./com/oreilly/forum/domain/MessageSummaryImpl.class 2 ./com/oreilly/forum/domain/MessageTree.class 2 ./com/oreilly/forum/fakeimpl/BoardSummaryImpl.class 4 ./com/oreilly/forum/fakeimpl/FakeDataAdapter.class 4 ./com/oreilly/forum/jdbcimpl/DBUtil.class 7 ./com/oreilly/forum/jdbcimpl/JdbcDataAdapter.class 2 ./com/oreilly/forum/servlet/ErrorRenderer.class 1 ./com/oreilly/forum/servlet/Renderer.class 3 ./com/oreilly/forum/servlet/ForumServlet.class 2 ./com/oreilly/forum/servlet/ReqHandlerRegistry.class 1 ./com/oreilly/forum/servlet/ReqHandler.class 2 ./com/oreilly/forum/servlet/HomeRenderer.class 1 ./com/oreilly/forum/servlet/HomeReqHandler.class 3 ./com/oreilly/forum/servlet/PostMsgRenderer.class 4 ./com/oreilly/forum/servlet/PostMsgReqHandler.class 2 ./com/oreilly/forum/servlet/ViewMonthRenderer.class 2 ./com/oreilly/forum/servlet/ViewMonthReqHandler.class 2 ./com/oreilly/forum/servlet/ViewMsgRenderer.class 2 ./com/oreilly/forum/servlet/ViewMsgReqHandler.class 3 ./com/oreilly/forum/servlet/XSLTRenderHelper.class 2 ./com/oreilly/forum/xml/BoardSummaryJDOM.class 1 ./com/oreilly/forum/xml/HomeJDOM.class 2 ./com/oreilly/forum/xml/PostMessageJDOM.class 2 ./com/oreilly/forum/xml/ViewMessageJDOM.class 3 ./com/oreilly/forum/xml/ViewMonthJDOM.class 1 ./com/oreilly/forum/ForumConfig.class burrowww.cs.indiana.edu%
At least what's good is that we compiled them.
Let's see what else is there.
We need to read into what it contains.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion/source burrowww.cs.indiana.edu% ls com burrowww.cs.indiana.edu% cd .. burrowww.cs.indiana.edu% ls design docroot prototype source src web.xml xslt burrowww.cs.indiana.edu% cat web.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"> <web-app> <servlet> <servlet-name>forumServlet</servlet-name> <servlet-class>com.oreilly.forum.servlet.ForumServlet</servlet-class> <init-param> <param-name>jdbcDriverClassName</param-name> <param-value>org.gjt.mm.mysql.Driver</param-value> <!-- MySQL version is commented out: <param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value> --> </init-param> <init-param> <param-name>databaseURL</param-name> <param-value>jdbc:mysql://localhost:3306/forum</param-value> <!-- MySQL version is commented out: <param-value>jdbc:odbc:forum</param-value> --> </init-param> <init-param> <param-name>adapterClassName</param-name> <!-- Relational database version is commented out: --> <param-value>com.oreilly.forum.jdbcimpl.JdbcDataAdapter</param-value> <!-- <param-value>com.oreilly.forum.fakeimpl.FakeDataAdapter</param-value> --> </init-param> </servlet> <servlet-mapping> <servlet-name>forumServlet</servlet-name> <url-pattern>/main/*</url-pattern> </servlet-mapping> </web-app> burrowww.cs.indiana.edu%
So we need to create a context.
Check this out first, though.
We now create the new context (note we have a few degrees of freedom).burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion burrowww.cs.indiana.edu% ls -l total 8 drwxr-xr-x 2 dgerman faculty 512 Sep 2 2001 design drwxr-xr-x 2 dgerman faculty 512 Sep 2 2001 docroot drwxr-xr-x 2 dgerman faculty 512 Sep 2 2001 prototype drwxr-xr-x 3 dgerman faculty 512 Aug 21 21:39 source drwxr-xr-x 3 dgerman faculty 512 Sep 2 2001 src -rwxr-xr-x 1 dgerman faculty 1321 Sep 2 2001 web.xml drwxr-xr-x 2 dgerman faculty 512 Sep 2 2001 xslt burrowww.cs.indiana.edu% ls -ld docroot/* -rwxr-xr-x 1 dgerman faculty 763 Sep 2 2001 docroot/forum.css -rwxr-xr-x 1 dgerman faculty 361 Sep 2 2001 docroot/index.html burrowww.cs.indiana.edu% ls -ld xslt/* -rwxr-xr-x 1 dgerman faculty 2551 Sep 2 2001 xslt/home.xslt -rwxr-xr-x 1 dgerman faculty 5235 Sep 2 2001 xslt/postMsg.xslt -rwxr-xr-x 1 dgerman faculty 1807 Sep 2 2001 xslt/utils.xslt -rwxr-xr-x 1 dgerman faculty 3897 Sep 2 2001 xslt/viewMonth.xslt -rwxr-xr-x 1 dgerman faculty 3268 Sep 2 2001 xslt/viewMsg.xslt burrowww.cs.indiana.edu%
We re-initialize the server.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/discussion burrowww.cs.indiana.edu% cd $CATALINA_HOME/webapps burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps burrowww.cs.indiana.edu% ls newsgroups ls: newsgroups: No such file or directory burrowww.cs.indiana.edu% mkdir newsgroups burrowww.cs.indiana.edu% emacs ../conf/server.xml burrowww.cs.indiana.edu% grep newsgroups ../conf/server.xml <Context path="/bulletinBoard" docBase="newsgroups" debug="0" reloadable="true" /> burrowww.cs.indiana.edu%
Here's the basic requirement:burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 26867 24438 0 23:01:17 pts/4 0:00 grep dgerman dgerman 24438 24434 0 19:20:42 pts/4 0:01 -csh dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh dgerman 26376 1 0 22:11:00 pts/5 0:11 /l/jdk/bin/../bin/sparc/native_threads/java -Djava.endorsed.dirs=/nfs/paca/home burrowww.cs.indiana.edu% $CATALINA_HOME/bin/shutdown.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 26890 24438 0 23:01:36 pts/4 0:00 grep dgerman dgerman 24438 24434 0 19:20:42 pts/4 0:01 -csh dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh burrowww.cs.indiana.edu% $CATALINA_HOME/bin/startup.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu%
Step one of bringing things together:burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps burrowww.cs.indiana.edu% ls -l total 9 drwxr-xr-x 3 dgerman faculty 512 Aug 1 10:40 0731 drwxr-xr-x 3 dgerman faculty 512 Jun 11 00:09 ROOT drwxr-xr-x 6 dgerman faculty 512 Jun 11 00:09 examples drwxr-xr-x 3 dgerman faculty 512 Jun 11 00:09 manager drwxr-xr-x 3 dgerman faculty 512 Aug 21 23:06 newsgroups drwxr-xr-x 3 dgerman faculty 512 Aug 8 10:04 one drwxr-xr-x 2 dgerman faculty 512 Aug 21 23:08 six drwxr-xr-x 9 dgerman faculty 512 Jun 11 00:09 tomcat-docs drwxr-xr-x 3 dgerman faculty 512 Jun 11 00:09 webdav burrowww.cs.indiana.edu% du -a newsgroups 1 newsgroups/WEB-INF/classes 1 newsgroups/WEB-INF/lib 3 newsgroups/WEB-INF 4 newsgroups burrowww.cs.indiana.edu% grep newsgroups ../conf/server.xml <Context path="/bulletinBoard" docBase="newsgroups" debug="0" reloadable="true" /> burrowww.cs.indiana.edu%
Now check the URL:burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ls -ld /u/dgerman/public/javaxslt/discussion/docroot/* -rwxr-xr-x 1 dgerman faculty 763 Sep 2 2001 /u/dgerman/public/javaxslt/discussion/docroot/forum.css -rwxr-xr-x 1 dgerman faculty 361 Sep 2 2001 /u/dgerman/public/javaxslt/discussion/docroot/index.html burrowww.cs.indiana.edu% cp /u/dgerman/public/javaxslt/discussion/docroot/* . burrowww.cs.indiana.edu% ls -l total 3 drwxr-xr-x 4 dgerman faculty 512 Aug 21 23:06 WEB-INF -rwxr-xr-x 1 dgerman faculty 763 Aug 21 23:16 forum.css -rwxr-xr-x 1 dgerman faculty 361 Aug 21 23:16 index.html burrowww.cs.indiana.edu%
It won't work until we bring in thehttp://burrowww.cs.indiana.edu:19200/bulletinBoard
web.xml
provided:
Just theburrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ls /u/dgerman/public/javaxslt/discussion/web.xml /u/dgerman/public/javaxslt/discussion/web.xml burrowww.cs.indiana.edu% cp /u/dgerman/public/javaxslt/discussion/web.xml . burrowww.cs.indiana.edu% ls -l total 5 drwxr-xr-x 4 dgerman faculty 512 Aug 21 23:06 WEB-INF -rwxr-xr-x 1 dgerman faculty 763 Aug 21 23:16 forum.css -rwxr-xr-x 1 dgerman faculty 361 Aug 21 23:16 index.html -rwxr-xr-x 1 dgerman faculty 1321 Aug 21 23:21 web.xml burrowww.cs.indiana.edu%
web.xml
file without the actual servlets is useless, so we bring those in.
Changeburrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ls -l total 5 drwxr-xr-x 4 dgerman faculty 512 Aug 21 23:06 WEB-INF -rwxr-xr-x 1 dgerman faculty 763 Aug 21 23:16 forum.css -rwxr-xr-x 1 dgerman faculty 361 Aug 21 23:16 index.html -rwxr-xr-x 1 dgerman faculty 1321 Aug 21 23:21 web.xml burrowww.cs.indiana.edu% cd WE* burrowww.cs.indiana.edu% cd classes burrowww.cs.indiana.edu% ls burrowww.cs.indiana.edu% ls /u/dgerman/public/javaxslt/discussion/source com burrowww.cs.indiana.edu% cp -r /u/dgerman/public/javaxslt/discussion/source/* . burrowww.cs.indiana.edu%
forum
into bulletinBoard
in index.html
then look for the main servlet.
We bring the necessary driver in our path, too:burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ls -l total 4 drwxr-xr-x 4 dgerman faculty 512 Aug 21 23:06 WEB-INF -rwxr-xr-x 1 dgerman faculty 763 Aug 21 23:16 forum.css -rwxr-xr-x 1 dgerman faculty 359 Aug 21 23:32 index.html -rwxr-xr-x 1 dgerman faculty 794 Aug 21 23:44 web.xml burrowww.cs.indiana.edu% cat web.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"> <web-app> <servlet> <servlet-name>forumServlet</servlet-name> <servlet-class>com.oreilly.forum.servlet.ForumServlet</servlet-class> <init-param> <param-name>jdbcDriverClassName</param-name> <param-value>org.gjt.mm.mysql.Driver</param-value> </init-param> <init-param> <param-name>databaseURL</param-name> <param-value>jdbc:mysql://localhost:3306/forum</param-value> </init-param> <init-param> <param-name>adapterClassName</param-name> <param-value>com.oreilly.forum.jdbcimpl.JdbcDataAdapter</param-value> </init-param> </servlet> </web-app>burrowww.cs.indiana.edu% pico index.html burrowww.cs.indiana.edu% cat index.html <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Discussion Forum Web Application</title> </head> <body> <p><a href="/bulletinBoard/forumServlet">Launch the discussion forum...</a></p> </body> </html> burrowww.cs.indiana.edu%
A few more (final) changes and double-checks.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/lib burrowww.cs.indiana.edu% ls /u/dgerman/public/mm* /u/dgerman/public/mm.mysql-2.0.2-bin.jar burrowww.cs.indiana.edu% cp /u/dgerman/public/mm.mysql-2.0.2-bin.jar . burrowww.cs.indiana.edu% ls -l total 70 -rw-r--r-- 1 dgerman faculty 71328 Aug 21 23:53 mm.mysql-2.0.2-bin.jar burrowww.cs.indiana.edu%
And a few minor ones, some more.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 24438 24434 0 19:20:42 pts/4 0:02 -csh dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh dgerman 27644 24438 0 23:57:05 pts/4 0:00 grep dgerman burrowww.cs.indiana.edu% $CATALINA_HOME/bin/startup.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 24438 24434 0 19:20:42 pts/4 0:02 -csh dgerman 27669 24438 0 23:57:31 pts/4 0:00 grep dgerman dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh dgerman 27655 1 6 23:57:26 pts/4 0:04 /l/jdk/bin/../bin/sparc/native_threads/java -Djava.endorsed.dirs=/nfs/paca/home burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% cat index.html <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Discussion Forum Web Application</title> </head> <body> <p><a href="/bulletinBoard/forumServlet">Launch the discussion forum...</a></p> </body> </html> burrowww.cs.indiana.edu% cat web.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"> <web-app> <servlet> <servlet-name>forumServlet</servlet-name> <servlet-class>com.oreilly.forum.servlet.ForumServlet</servlet-class> <init-param> <param-name>jdbcDriverClassName</param-name> <param-value>org.gjt.mm.mysql.Driver</param-value> </init-param> <init-param> <param-name>databaseURL</param-name> <param-value>jdbc:mysql://localhost/a348</param-value> </init-param> <init-param> <param-name>adapterClassName</param-name> <param-value>com.oreilly.forum.jdbcimpl.JdbcDataAdapter</param-value> </init-param> </servlet> </web-app> burrowww.cs.indiana.edu%
The problem was thatburrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ls -l total 4 drwxr-xr-x 4 dgerman faculty 512 Aug 21 23:06 WEB-INF -rwxr-xr-x 1 dgerman faculty 763 Aug 21 23:16 forum.css -rwxr-xr-x 1 dgerman faculty 375 Aug 22 00:02 index.html -rwxr-xr-x 1 dgerman faculty 789 Aug 21 23:52 web.xml burrowww.cs.indiana.edu% pico index.html burrowww.cs.indiana.edu% cat index.html <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Discussion Forum Web Application</title> </head> <body> <p><img src="http://www.cs.indiana.edu/classes/a113-dger"> <a href="/bulletinBoard/servlet/forumServlet">Launch the discussion forum...</a></p> </body> </html> burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 24438 24434 0 19:20:42 pts/4 0:02 -csh dgerman 27998 24438 0 00:03:09 pts/4 0:00 grep dgerman dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh dgerman 27655 1 0 23:57:26 pts/4 0:12 /l/jdk/bin/../bin/sparc/native_threads/java -Djava.endorsed.dirs=/nfs/paca/home burrowww.cs.indiana.edu% $CATALINA_HOME/bin/shutdown.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 24438 24434 0 19:20:42 pts/4 0:02 -csh dgerman 28020 24438 0 00:03:31 pts/4 0:00 grep dgerman dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh burrowww.cs.indiana.edu% $CATALINA_HOME/bin/startup.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu%
web.xml
was not in the right place:
Now we start and things finally work, to exhibit the first good error:burrowww.cs.indiana.edu% du 8 ./WEB-INF/classes/com/oreilly/forum/adapter 33 ./WEB-INF/classes/com/oreilly/forum/domain 14 ./WEB-INF/classes/com/oreilly/forum/fakeimpl 29 ./WEB-INF/classes/com/oreilly/forum/jdbcimpl 64 ./WEB-INF/classes/com/oreilly/forum/servlet 21 ./WEB-INF/classes/com/oreilly/forum/xml 173 ./WEB-INF/classes/com/oreilly/forum 174 ./WEB-INF/classes/com/oreilly 175 ./WEB-INF/classes/com 176 ./WEB-INF/classes 71 ./WEB-INF/lib 249 ./WEB-INF 252 . burrowww.cs.indiana.edu% du -a | grep web.xml 1 ./WEB-INF/web.xml burrowww.cs.indiana.edu% cat index.html <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Discussion Forum Web Application</title> </head> <body> <p><img src="http://www.cs.indiana.edu/classes/a113-dger/left.gif"> <a href="/bulletinBoard/servlet/forumServlet">Launch the discussion forum...</a></p> </body> </html> burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 28359 24438 0 00:19:06 pts/4 0:00 grep dgerman dgerman 28335 1 0 00:17:40 pts/4 0:12 /l/jdk/bin/../bin/sparc/native_threads/java -Djava.endorsed.dirs=/nfs/paca/home dgerman 24438 24434 0 19:20:42 pts/4 0:02 -csh dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh burrowww.cs.indiana.edu% $CATALINA_HOME/bin/shutdown.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 24438 24434 0 19:20:42 pts/4 0:02 -csh dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh dgerman 28381 24438 0 00:19:25 pts/4 0:00 grep dgerman burrowww.cs.indiana.edu%
The error is this:burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 24438 24434 0 19:20:42 pts/4 0:02 -csh dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh dgerman 28402 24438 0 00:22:06 pts/4 0:00 grep dgerman burrowww.cs.indiana.edu% $CATALINA_HOME/bin/startup.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu% ps -ef | grep dgerman dgerman 28426 24438 0 00:22:23 pts/4 0:00 grep dgerman dgerman 28412 1 8 00:22:16 pts/4 0:05 /l/jdk/bin/../bin/sparc/native_threads/java -Djava.endorsed.dirs=/nfs/paca/home dgerman 24438 24434 0 19:20:42 pts/4 0:02 -csh dgerman 26327 26323 0 22:08:30 pts/5 0:00 -csh burrowww.cs.indiana.edu%
And you know that something needs to be changed.General error: Access denied for user: '@localhost' to database 'a348' com.oreilly.forum.adapter.DataException: General error: Access denied for user: '@localhost' to database 'a348' at com.oreilly.forum.jdbcimpl.JdbcDataAdapter.getAllBoards(JdbcDataAdapter.java:189) at com.oreilly.forum.servlet.HomeRenderer.render(HomeRenderer.java:26) at com.oreilly.forum.servlet.ForumServlet.doGet(ForumServlet.java:68) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:450) at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:484)
Now the error changes:burrowww.cs.indiana.edu% ls -l total 28 -rw-r--r-- 1 dgerman faculty 3554 Aug 21 23:27 DBUtil.class -rwxr-xr-x 1 dgerman faculty 5607 Aug 21 23:27 DBUtil.java -rw-r--r-- 1 dgerman faculty 6672 Aug 21 23:27 JdbcDataAdapter.class -rwxr-xr-x 1 dgerman faculty 11121 Aug 21 23:27 JdbcDataAdapter.java burrowww.cs.indiana.edu% grep DriverManager *.java DBUtil.java: return DriverManager.getConnection(dbURL); burrowww.cs.indiana.edu% pico DBUtil.java burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes/com/oreilly/forum/jdbcimpl burrowww.cs.indiana.edu% grep a348 DB* DBUtil.java: "jdbc:mysql://localhost/a348", "a348", "a348AG" burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes/com/oreilly/forum/jdbcimpl burrowww.cs.indiana.edu% cd .. burrowww.cs.indiana.edu% cd .. burrowww.cs.indiana.edu% cd .. burrowww.cs.indiana.edu% cd .. burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/jdbcimpl/*.java burrowww.cs.indiana.edu%
So now we need to bring up to date all the tables' names:General error: Table 'a348.Board' doesn't exist com.oreilly.forum.adapter.DataException: General error: Table 'a348.Board' doesn't exist at com.oreilly.forum.jdbcimpl.JdbcDataAdapter.getAllBoards(JdbcDataAdapter.java:189) at com.oreilly.forum.servlet.HomeRenderer.render(HomeRenderer.java:26) at com.oreilly.forum.servlet.ForumServlet.doGet(ForumServlet.java:68) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:484)
This only happens in two places, and after we compile, we get a new error.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes/com/oreilly/forum burrowww.cs.indiana.edu% grep " Board " *.java */*.java jdbcimpl/JdbcDataAdapter.java: "SELECT id, name, description FROM Board " jdbcimpl/JdbcDataAdapter.java: "SELECT name, description FROM Board WHERE id=" + boardID); burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/jdbcimpl/*.java burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes burrowww.cs.indiana.edu%
We're getting closer.General error: Table 'a348.Message' doesn't exist com.oreilly.forum.adapter.DataException: General error: Table 'a348.Message' doesn't exist at com.oreilly.forum.jdbcimpl.JdbcDataAdapter.getAllBoards(JdbcDataAdapter.java:189) at com.oreilly.forum.servlet.HomeRenderer.render(HomeRenderer.java:26) at com.oreilly.forum.servlet.ForumServlet.doGet(ForumServlet.java:68) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:484)
Now we try again and we get a different error.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes burrowww.cs.indiana.edu% cd com burrowww.cs.indiana.edu% cd ore* burrowww.cs.indiana.edu% cd for* burrowww.cs.indiana.edu% ls ForumConfig.class ForumConfig.java adapter domain fakeimpl jdbcimpl servlet xml burrowww.cs.indiana.edu% grep " Message " *.java */*.java adapter/DataAdapter.java: public abstract Message getMessage(long msgID) throws DataException; adapter/DataAdapter.java: public abstract Message replyToMessage(long origMsgID, String msgSubject, adapter/DataAdapter.java: public abstract Message postNewMessage(long boardID, String msgSubject, domain/Message.java:public interface Message extends MessageSummary { domain/MessageImpl.java: * An implementation of the Message interface. domain/MessageImpl.java:public class MessageImpl extends MessageSummaryImpl implements Message { fakeimpl/FakeDataAdapter.java: public Message getMessage(long msgID) throws DataException { fakeimpl/FakeDataAdapter.java: Message msg = (Message) this.messageMap.get(new Long(msgID)); fakeimpl/FakeDataAdapter.java: public Message replyToMessage(long origMsgID, String msgSubject, fakeimpl/FakeDataAdapter.java: Message msg = new MessageImpl(msgID, new DayMonthYear(), origMsg.getBoard(), fakeimpl/FakeDataAdapter.java: public Message postNewMessage(long boardID, String msgSubject, fakeimpl/FakeDataAdapter.java: Message msg = new MessageImpl(msgID, new DayMonthYear(), boardSum, jdbcimpl/JdbcDataAdapter.java: public Message getMessage(long msgID) throws DataException { jdbcimpl/JdbcDataAdapter.java: + "FROM Message WHERE id=" jdbcimpl/JdbcDataAdapter.java: public Message replyToMessage(long origMsgID, jdbcimpl/JdbcDataAdapter.java: Message inReplyToMsg = this.getMessage(origMsgID); jdbcimpl/JdbcDataAdapter.java: public Message postNewMessage(long boardID, String msgSubject, jdbcimpl/JdbcDataAdapter.java: + "FROM Message WHERE createMonth=" jdbcimpl/JdbcDataAdapter.java: + "FROM Message " jdbcimpl/JdbcDataAdapter.java: private Message insertMessage(BoardSummary board, long inReplyToID, jdbcimpl/JdbcDataAdapter.java: stmt = con.prepareStatement("INSERT INTO Message " servlet/PostMsgReqHandler.java: Message inResponseToMsg = adapter.getMessage(origMsgID); servlet/PostMsgReqHandler.java: Message msg = null; servlet/ViewMsgRenderer.java: private Message message; servlet/ViewMsgReqHandler.java: Message msg = adapter.getMessage(Long.parseLong(msgIDStr)); xml/ViewMessageJDOM.java: * Generate JDOM for the View Message page. burrowww.cs.indiana.edu% pico jdbcimpl/JdbcDataAdapter.java burrowww.cs.indiana.edu% grep dgerman_message *.java */*.java jdbcimpl/JdbcDataAdapter.java: + "FROM dgerman_message WHERE id=" jdbcimpl/JdbcDataAdapter.java: + "FROM dgerman_message WHERE createMonth=" jdbcimpl/JdbcDataAdapter.java: + "FROM dgerman_message " jdbcimpl/JdbcDataAdapter.java: stmt = con.prepareStatement("INSERT INTO dgerman_message " burrowww.cs.indiana.edu% cd ../../.. burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/jdbcimpl/*.java burrowww.cs.indiana.edu%
First we put the xslt stylesheets where they belong (we forgot that).
Sure enough that's not enough.burrowww.cs.indiana.edu% ls -l total 3 drwxr-xr-x 4 dgerman faculty 512 Aug 22 00:17 WEB-INF -rwxr-xr-x 1 dgerman faculty 763 Aug 21 23:16 forum.css -rwxr-xr-x 1 dgerman faculty 459 Aug 22 00:05 index.html burrowww.cs.indiana.edu% mkdir xslt burrowww.cs.indiana.edu% ls WEB-INF forum.css index.html xslt burrowww.cs.indiana.edu% ls /u/dgerman/public/javaxslt/discussion/xslt home.xslt postMsg.xslt utils.xslt viewMonth.xslt viewMsg.xslt burrowww.cs.indiana.edu% cp /u/dgerman/public/javaxslt/discussion/xslt/* xslt burrowww.cs.indiana.edu% ls xslt home.xslt postMsg.xslt utils.xslt viewMonth.xslt viewMsg.xslt burrowww.cs.indiana.edu%
I made an archive out ofburrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/lib burrowww.cs.indiana.edu% echo $CLASSPATH /u/dgerman/public/javaxslt/lib:.:/u/dgerman/tomcat/jakarta-tomcat-4.0.4/common/lib/servlet.jar burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/lib burrowww.cs.indiana.edu% ls -l total 3 drwxr-xr-x 3 dgerman faculty 512 Aug 14 16:01 com drwxr-xr-x 4 dgerman faculty 512 Aug 14 16:06 javax drwxr-xr-x 7 dgerman faculty 512 Aug 14 16:07 org burrowww.cs.indiana.edu% cp -r org $CATALINA_HOME/webapps/newsgroups/WE*/lib burrowww.cs.indiana.edu% quota -v Disk quotas for dgerman (uid 10867): Filesystem usage quota limit timeleft files quota limit timeleft /nfs/paca/home/user1 42108 100000 102400 3287 0 0 burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/lib burrowww.cs.indiana.edu% du -a . | grep Document 6 ./javax/xml/parsers/DocumentBuilderFactory.class 3 ./javax/xml/parsers/DocumentBuilder.class 2 ./org/apache/crimson/jaxp/DocumentBuilderFactoryImpl.class 4 ./org/apache/crimson/jaxp/DocumentBuilderImpl.class 13 ./org/apache/crimson/tree/XmlDocumentBuilder.class 1 ./org/apache/crimson/tree/XmlDocument$1.class 2 ./org/apache/crimson/tree/XmlDocument$DocFragNode.class 3 ./org/apache/crimson/tree/XmlDocument$EntityRefNode.class 2 ./org/apache/crimson/tree/XmlDocument$ExtWriteContext.class 2 ./org/apache/crimson/tree/XmlDocument$Catalog.class 17 ./org/apache/crimson/tree/XmlDocument.class 1 ./org/apache/crimson/tree/DocumentEx.class 5 ./org/apache/xalan/stree/DocumentImpl.class 1 ./org/apache/xalan/stree/DocumentFragmentImpl.class 3 ./org/apache/xalan/stree/DocumentTypeImpl.class 6 ./org/apache/xalan/templates/FuncDocument.class 2 ./org/apache/xalan/transformer/QueuedStartDocument.class 1 ./org/xml/sax/DocumentHandler.class 2 ./org/w3c/dom/Document.class 1 ./org/w3c/dom/DocumentType.class 1 ./org/w3c/dom/DocumentFragment.class 1 ./org/w3c/dom/range/DocumentRange.class 1 ./org/w3c/dom/traversal/DocumentTraversal.class 8 ./org/jdom/Document.class burrowww.cs.indiana.edu%
javax
and placed it in common/lib
for Tomcat.
Start and stop the server, as we normally do.burrowww.cs.indiana.edu% ls -l total 3 drwxr-xr-x 3 dgerman faculty 512 Aug 14 16:01 com drwxr-xr-x 4 dgerman faculty 512 Aug 14 16:06 javax drwxr-xr-x 7 dgerman faculty 512 Aug 14 16:07 org burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/lib burrowww.cs.indiana.edu% jar cvf extra.jar com added manifest adding: com/(in = 0) (out= 0)(stored 0%) adding: com/oreilly/(in = 0) (out= 0)(stored 0%) adding: com/oreilly/javaxslt/(in = 0) (out= 0)(stored 0%) adding: com/oreilly/javaxslt/swingtrans/(in = 0) (out= 0)(stored 0%) adding: com/oreilly/javaxslt/swingtrans/ErrorListenerModel.class(in = 4254) (out= 2114)(deflated 50%) adding: com/oreilly/javaxslt/swingtrans/SwingTransformer$1.class(in = 715) (out= 370)(deflated 48%) adding: com/oreilly/javaxslt/swingtrans/SwingTransformer$2.class(in = 715) (out= 370)(deflated 48%) adding: com/oreilly/javaxslt/swingtrans/SwingTransformer$3.class(in = 1235) (out= 638)(deflated 48%) adding: com/oreilly/javaxslt/swingtrans/SwingTransformer.class(in = 3840) (out= 1809)(deflated 52%) adding: com/oreilly/javaxslt/swingtrans/XMLFileFilter.class(in = 611) (out= 424)(deflated 30%) adding: com/oreilly/javaxslt/swingtrans/XSLTFileFilter.class(in = 653) (out= 445)(deflated 31%) adding: com/oreilly/javaxslt/swingtrans/TransformerWindow$1.class(in = 657) (out= 363)(deflated 44%) adding: com/oreilly/javaxslt/swingtrans/TransformerWindow$2.class(in = 762) (out= 424)(deflated 44%) adding: com/oreilly/javaxslt/swingtrans/TransformerWindow.class(in = 5191) (out= 2557)(deflated 50%) adding: com/oreilly/javaxslt/swingtrans/XMLOutputPanel.class(in = 2062) (out= 1138)(deflated 44%) adding: com/oreilly/javaxslt/util/(in = 0) (out= 0)(stored 0%) adding: com/oreilly/javaxslt/util/AbstractXMLReader.class(in = 2469) (out= 1023)(deflated 58%) adding: com/oreilly/javaxslt/util/BufferedHttpResponseWrapper.class(in = 1847) (out= 847)(deflated 54%) adding: com/oreilly/javaxslt/util/BufferedServletOutputStream.class(in = 702) (out= 412)(deflated 41%) adding: com/oreilly/javaxslt/util/CSVXMLReader.class(in = 2974) (out= 1679)(deflated 43%) adding: com/oreilly/javaxslt/util/DOMUtil.class(in = 2984) (out= 1489)(deflated 50%) adding: com/oreilly/javaxslt/util/ResultCache$MapKey.class(in = 706) (out= 442)(deflated 37%) adding: com/oreilly/javaxslt/util/ResultCache$MapValue.class(in = 1365) (out= 703)(deflated 48%) adding: com/oreilly/javaxslt/util/ResultCache.class(in = 1287) (out= 674)(deflated 47%) adding: com/oreilly/javaxslt/util/SimpleCSVProcessor.class(in = 2566) (out= 1340)(deflated 47%) adding: com/oreilly/javaxslt/util/Stopwatch.class(in = 1049) (out= 615)(deflated 41%) adding: com/oreilly/javaxslt/util/StylesheetCache$MapEntry.class(in = 489) (out= 323)(deflated 33%) adding: com/oreilly/javaxslt/util/StylesheetCache.class(in = 1687) (out= 850)(deflated 49%) adding: com/oreilly/javaxslt/util/StylesheetFilter.class(in = 3034) (out= 1515)(deflated 50%) burrowww.cs.indiana.edu% ls -l total 31 drwxr-xr-x 3 dgerman faculty 512 Aug 14 16:01 com -rw-r--r-- 1 dgerman faculty 28168 Aug 22 01:38 extra.jar drwxr-xr-x 4 dgerman faculty 512 Aug 14 16:06 javax drwxr-xr-x 7 dgerman faculty 512 Aug 14 16:07 org burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/public/javaxslt/lib burrowww.cs.indiana.edu% cp extra.jar $CATALINA_HOME/common/lin burrowww.cs.indiana.edu% cd $CATALINA_HOME/common burrowww.cs.indiana.edu% ls classes lib lin burrowww.cs.indiana.edu% mv lin lib/extra.jar burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/common burrowww.cs.indiana.edu% ls lib abitmore.jar jdbc2_0-stdext.jar mail.jar servlet.jar xerces.jar activation.jar jndi.jar naming-common.jar tyrex-0.9.7.0.jar extra.jar jta-spec1_0_1.jar naming-resources.jar tyrex.license burrowww.cs.indiana.edu%
Now the last incongruous thing is that we need xslt
inside
WEB-INF
not above it.
And that (finally) does it. Well, actually, almost.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/common/lib burrowww.cs.indiana.edu% cd $CATALINA_HOME burrowww.cs.indiana.edu% cd webapps/news* burrowww.cs.indiana.edu% ls WEB-INF forum.css index.html xslt burrowww.cs.indiana.edu% mv xslt WE* burrowww.cs.indiana.edu% ls WEB-INF forum.css index.html burrowww.cs.indiana.edu% ls WE* classes lib web.xml xslt burrowww.cs.indiana.edu%
Adjust the resource URLs first.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups burrowww.cs.indiana.edu% ls WEB-INF forum.css index.html burrowww.cs.indiana.edu% cd WE* burrowww.cs.indiana.edu% ls classes lib web.xml xslt burrowww.cs.indiana.edu% cd xslt burrowww.cs.indiana.edu% ls home.xslt postMsg.xslt utils.xslt viewMonth.xslt viewMsg.xslt burrowww.cs.indiana.edu% grep forum * home.xslt: <link href="{$rootDir}forum.css" home.xslt: ** Output a box for each board in the discussion forum home.xslt: "/forum/main/postMsg?mode=postNewMsg&boardID={$boardID}">Post Message</a> home.xslt: "/forum/main/viewMonth?boardID={$boardID}&month={@month}&year={@year}"> postMsg.xslt: <link href="{$rootDir}forum.css" viewMonth.xslt: <link href="{$rootDir}forum.css" viewMsg.xslt: <link href="{$rootDir}forum.css" burrowww.cs.indiana.edu%
Then notice that forum.css
does not exist.
So here's what we do:
But that was wrong.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes/com/oreilly/forum burrowww.cs.indiana.edu% grep rootDir *.java */*.java servlet/XSLTRenderHelper.java: trans.setParameter("rootDir", "/forum/"); burrowww.cs.indiana.edu% pico servlet/XSLTRenderHelper.java burrowww.cs.indiana.edu% grep rootDir *.java */*.java servlet/XSLTRenderHelper.java: trans.setParameter("rootDir", "/bulletinBoard/"); burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes/com/oreilly/forum burrowww.cs.indiana.edu% cd ../../../ burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/servlet/*.java burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes burrowww.cs.indiana.edu% cd .. burrowww.cs.indiana.edu% cd .. burrowww.cs.indiana.edu% ls /u/dgerman/public/javaxslt License-ASF.txt README.txt chapters discussion exampleList.xml lib License-JDOM.txt build.xml common exampleList.html exampleList.xslt burrowww.cs.indiana.edu% ls /u/dgerman/public/javaxslt/discussion design docroot prototype source src web.xml xslt burrowww.cs.indiana.edu% ls /u/dgerman/public/javaxslt/discussion/docroot forum.css index.html burrowww.cs.indiana.edu% cp /u/dgerman/public/javaxslt/discussion/docroot/forum.css . burrowww.cs.indiana.edu% ls -l total 3 drwxr-xr-x 5 dgerman faculty 512 Aug 22 01:43 WEB-INF -rwxr-xr-x 1 dgerman faculty 763 Aug 22 01:51 forum.css -rwxr-xr-x 1 dgerman faculty 459 Aug 22 00:05 index.html burrowww.cs.indiana.edu%
Here's the problem:
And it finally works. No kidding.burrowww.cs.indiana.edu% cd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes/com/oreilly/forum burrowww.cs.indiana.edu% pico pico servlet/XSLTRenderHelper.java^C burrowww.cs.indiana.edu% pico servlet/XSLTRenderHelper.java burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes/com/oreilly/forum burrowww.cs.indiana.edu% cd ../../.. burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/servlet/*.java burrowww.cs.indiana.edu% $CATALINA_HOME/bin/shutdown.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu% burrowww.cs.indiana.edu% burrowww.cs.indiana.edu% $CATALINA_HOME/bin/startup.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu%
Actually not.
Still one more small minor thing to do:
Does this help?burrowww.cs.indiana.edu% cp /u/dgerman/public/javaxslt/discussion/xslt/* . burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/xslt burrowww.cs.indiana.edu%
If we make the following changes:
That's not all.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/xslt burrowww.cs.indiana.edu% cd .. burrowww.cs.indiana.edu% pico web.xml burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF burrowww.cs.indiana.edu% cd ../.. burrowww.cs.indiana.edu% mv newsgroups forum^C burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps burrowww.cs.indiana.edu% $CATALINA_HOME/bin/shutdown.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu% $CATALINA_HOME/binstartup.sh /u/dgerman/tomcat/jakarta-tomcat-4.0.4/binstartup.sh: Command not found burrowww.cs.indiana.edu% $CATALINA_HOME/bin/startup.sh Using CATALINA_BASE: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_HOME: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/temp Using JAVA_HOME: /l/jdk burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps burrowww.cs.indiana.edu%
But now watch out, because we need to update the post message servlets too.burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps burrowww.cs.indiana.edu% cd newsgroups burrowww.cs.indiana.edu% ls WEB-INF forum.css index.html burrowww.cs.indiana.edu% cd WE* burrowww.cs.indiana.edu% ls classes lib web.xml xslt burrowww.cs.indiana.edu% cd xslt burrowww.cs.indiana.edu% ls home.xslt postMsg.xslt utils.xslt viewMonth.xslt viewMsg.xslt burrowww.cs.indiana.edu% grep forum * home.xslt: <link href="{$rootDir}forum.css" home.xslt: ** Output a box for each board in the discussion forum home.xslt: "/forum/main/postMsg?mode=postNewMsg&boardID={$boardID}">Post Message</a> home.xslt: "/forum/main/viewMonth?boardID={$boardID}&month={@month}&year={@year}"> postMsg.xslt: <link href="{$rootDir}forum.css" viewMonth.xslt: <link href="{$rootDir}forum.css" viewMsg.xslt: <link href="{$rootDir}forum.css" burrowww.cs.indiana.edu% emacs home.xslt burrowww.cs.indiana.edu% diff home.xslt home.xslt~ 54c54 < "/bulletinBoard/main/postMsg?mode=postNewMsg&boardID={$boardID}">Post Message</a> --- > "/forum/main/postMsg?mode=postNewMsg&boardID={$boardID}">Post Message</a> 62c62 < "/bulletinBoard/main/viewMonth?boardID={$boardID}&month={@month}&year={@year}"> --- > "/forum/main/viewMonth?boardID={$boardID}&month={@month}&year={@year}"> burrowww.cs.indiana.edu%
Change and compile:jdbcimpl/JdbcDataAdapter.java: long newMsgID = DBUtil.getNextID("Message", con);
Finished.jdbcimpl/JdbcDataAdapter.java: return monthsWithMessages; jdbcimpl/JdbcDataAdapter.java: private Message insertMessage(BoardSummary board, long inReplyToID, jdbcimpl/JdbcDataAdapter.java: long newMsgID = DBUtil.getNextID("Message", con); jdbcimpl/JdbcDataAdapter.java: return new MessageImpl(newMsgID, createDate, burrowww.cs.indiana.edu% cd jdbcimpl burrowww.cs.indiana.edu% pico JdbcDataAdapter.java burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes/com/oreilly/forum/jdbcimpl burrowww.cs.indiana.edu% cd ../../../.. burrowww.cs.indiana.edu% pwd /nfs/paca/home/user1/dgerman/tomcat/jakarta-tomcat-4.0.4/webapps/newsgroups/WEB-INF/classes burrowww.cs.indiana.edu% ls com burrowww.cs.indiana.edu% javac -d . com/oreilly/forum/jdbcimpl/*.java burrowww.cs.indiana.edu%
(What did you expect?)
But the difficult part only now starts.
The question is this (now that it finally works):
Why does it work?(And that's for you to find out, of course.)