Shash;
Thanks for the post. This will be very useful !
I was wondering if anyone discovered the syntax for:
A. ServletParameters ie. that can be retrieved by
getInitParameter()
B. AutoStarting servlets so the servlet is started
when the servlet engine is started.
Cheers.
Nicholas
--- "Sasvata (Shash) Chatterjee"
<[EMAIL PROTECTED]> wrote:
> Hi!
>
> After much experimentation, I have been able to make
> a lot of progress (see my previous post attached
> below). I am posting this in hopes of helping some
> other soul who might be stuck in the future (the
> biggest lessons are in c. and e. below). Primarily
> my interest was in starting up the servlet server
> from within an IDE so I could debug.
>
> Here are my experiences using Win-98 and
> JSWDK-1.0.1. It should be similar for UNIX, I'll try
> later under my Redhat-6.1 installation (which is
> what I prefer, but at this point I had to try under
> Win-98 for various reasons).
>
> a) Use JSWDK-1.0.1 over the JSDK-2.1, both from Sun.
> Both are Sun Servlet API 2.1 compliant but
> JSDK-1.0.1 has more bug-fixes over JSDK-2.1. For
> one, the "HTTP POST/Connection reset by peer"
> problem with JSDK-2.1 and Win-95/Win-98 seems to
> have been fixed with JSWDK-1.0.1. Moreover, JSWDK
> includes the JSP reference implementation.
>
> b) Unzip JSWDK into a local directory, and
> experiment with running the examples first. To do
> that, in a MS-DOS window cd to the install
> directory, C:\jswdk-1.0.1 for example, and run
> "startserver". The JSWDK version of startserver
> starts the main() method of
> com.sun.http.shell.Startup and that uses the file
> ./webserver.xml to configure
> com.sun.http.server.HttpServer. If everything is
> succesful, you should be able to use a browser to
> connect to http://localhost:8080/ and see the
> example page and navigate to the JSP and Servlet
> examples from there.
>
> c) Next step will be to see if you can create a
> "WebApplication" stored away from the JSWDK
> installation/examples and see if you can access the
> pages/servlets there using startserver to start the
> server. The webserver.xml config file has a line:
> <WebApplication id="examples"
> mapping="/examples" docBase="examples" />
> Add another line below it:
> <WebApplication id="test" mapping="/test"
> docBase="..\myServlets\examples" />
> Here's what I found: the WebApplication docBase has
> to be RELATIVE to the PARENT DIRECTORY of the
> WEBSERVER docBase. Let's say that JSWDK is
> installed in C:\jswdk-1.0.1.
> By default, the WebServer docBase then is
> C:\jswdk-1.0.1\webpages. If you want to install your
> own servlets in C:\myServlets, then the
> WebApplication docBase should be
> C:\jswdk-1.0.1\webpages\..\..\myServlets\examples.
> When you specify the WebApplication docBase, omit
> the WebServer docBase (i.e.
> C:\jswdk-1.0.1\webpages\) and the first "..\".
>
> d) Copy the JSWDK examples directory to
> C:\myServlets\examples (or wherever you specified in
> c. above). Stop (stopserver) and restart
> (startserver) the web server. You should now be
> able to browse to http://localhost:8080/test/jsp and
> http://localhost:8080/test/servlets
>
> e) In theory you should be able to change the
> WebServer docBase (i.e. the root directory for html
> pages) by specifying the proper "docBase" attribute
> to the "Service" element in webserver.xml. By
> default the Service element is defined as <Service
> id=service0>, and you should be able to change it to
> <Service id=service0 docBase=\myServlets\webpages">.
> In practice, I found that this works HALF way. It
> does change where your WebApplication relative paths
> should be calculated from. But it still expects your
> WebServer docBase to be "/webpages" concatenated to
> the value of the system property "user.dir", which
> is where you start "startserver" from! So, with our
> example, the WebServer docBase is always
> C:\jwsdk-1.0.1\webpages.
>
> f) The startserver script takes an argument "-config
> filename/URL" with which you can specify a different
> XML file for the server configuration. This does
> work as expected. In theory, just like the XML file,
> you should be able to specify "-docbase
> path-to-webserver-docbase" but that did not work for
> me either.
>
> g) Once you are satisfied with your custom path
> setups using "startserver" you should be ready to
> try with an IDE. Of course, what is needed is a
> replacement for startserver. Here's the class I used
> (NOTE: docbase was useless :-( ):
>
> public class ServletDebug {
> public static void
> main(java.lang.String[] args) {
>
> String configFile =
> "\\myServlets\\webserver.xml";
> String docBase =
> "\\myServlets\\webpages";
>
> String[] serverArgs = new
> String[4];
> serverArgs[0] = "-config";
> serverArgs[1] = configFile;
> serverArgs[2] = "-docbase";
> serverArgs[3] = docBase;
>
> com.sun.web.shell.Startup.main(serverArgs);
> }
> }
>
> Your servlets go in either
> webserver-docbase\Web-inf\servlets or in
> webapplication-docbase\Web-inf\servlets. Also, look
> at the various "*.properties" files in the
> WebServer/WebApplication docBases to see what you
> can do. Note that you should do the following in the
> ServeltDebug.Main() above to see where the webserver
> "webpages" directory should be:
>
> String sep =
> System.getProperty("file.separator");
>
> System.out.println(System.getProperty("user.dir") +
> sep + "webpages");
>
> You should also setup your classpath for your
> project under your IDE to load all the appropriate
> Servlet, Server, JSP, etc classes (JAR files) as
> well as all the beans you use in your
> servlet/JSP....that is too
> user/installation-specific for me to go into here.
>
> Good luck! This is all I know at this point ;-).
>
> Shash
>
> PS: One other thing that is still confusing. I have
> seen many references to JSDK-2.1 with a lib/jsdk.jar
> file and the sun.servlet.http.HttpServer class. The
> JSDK-2.1/JSWDK-2.1 do not have this...they have a
> webserver.jar, servlet.jar files and the
> com.sun.http.server.HttpServer class. Maybe there
> was an interim JSDK-2.1...but then it should have
> been a different version!
>
>
>
> "Sasvata (Shash) Chatterjee" wrote:
> >
> > Hi,
> >
> > I need to debug servlets with an IDE. I looked at
> various resources and books and was going to use the
> HttpServer class to start my developmental servlet.
> However, there is
> > a sun.servlet.http.HttpServer (the one most
> mentioned in books/FAQs/archives) and the
> com.sun.web.server.HttpServer that comes with
> JSDK-2.1 and yet another that comes with the
> JSWDK-1.0.1. I think the latter two are the same
> except the com.sun.web.shell.Startup for JSDK-2.1
> somehow uses "default.cfg" while the JSWDK-1.0.1
> uses "webserver.xml" to configure the server. Very
> confusing.....
> >
> > The question is where are the docs for the
> com.sun.web.* classes? If not accessible, what
> parameters can I pass to com.sun.web.shell.Startup,
> particularly to set my docbase and the various
> webapps/contexts? Or, how can I configure
> com.sun.web.server.HttpServer?
> >
> > I have tried the following (based on
> SimpleServer.java in jsdk-2.1/etc):
> >
> > HttpServer server = new HttpServer(port,
> inet, hostname);
> > try {
> > URL url = resolveURL(servletsDir);
> > server.setDocumentBase(url);
> > server.setTempDir(new File(tempDir));
> // Had to add this to prevent exception
> > System.out.println("Starting with
> docbase of: " + url);
> > server.start();
> > } catch (MalformedURLException mue) {
> > System.out.println("Malformed URL
> Exception for doc root");
> > System.out.println(mue.getMessage());
> > } catch (HttpServerException hse) {
> > System.out.println("Server threw an
> exception while running");
> > System.out.println(hse.getMessage());
>
=== message truncated ===> begin:vcard
> n:Chatterjee;Sasvata
> tel;fax:(972) 996-7119
> tel;work:(972) 996-6466
> x-mozilla-html:TRUE
> url:http://www.ans.alcatel.com
> org:Alcatel USA;Optical Networks R&D
> version:2.1
> email;internet:[EMAIL PROTECTED]
> title:Optical Transport Platforms
> adr;quoted-printable:;;1225 N. Alma Rd.=0D=0AMS
> 406-170;Richardson;Texas;75081-2206;USA
> x-mozilla-cpt:;18240
> fn:Sasvata (Shash) Chatterjee
> end:vcard
>
=====
--
Nicholas Whitehead
Marketwide Software & Consulting Inc.
[EMAIL PROTECTED]
Home: 973 377 9335
Current Office: 212 559 9314
__________________________________________________
Do You Yahoo!?
Thousands of Stores. Millions of Products. All in one place.
Yahoo! Shopping: http://shopping.yahoo.com
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html