Servlet debugging using jdb

hello friends, could anyone help me in debugging servlets using jdb. I am using tomcat as the web server. any suggestions or tip would be greatly appreciated. Thanks a lot.

suggestion:
If it is possible, move the processing of data out of the servlet and into a black box.
This way..you can test the black box and use an IDE tool for debugging.
you can make your servlet parse the parameter and pass it along

Similar Messages

  • Remote servlet debugging using OC4J

    Hi there,
    can anybody help me with remote debugging servlets and JSP running inside OC4J with JDeveloper 3.2.3? (JDK Version 1.3.1).
    Any help would be very welcome!
    Thanks in advance!
    Stefan

    I have posted a reply in OC4J forum
    check out http://technet.oracle.com:89/ubb/Forum99/HTML/000166.html
    raghu

  • Debugging servlets using jdb

    Hello friends, can anyone please help me in debugging servlets using jdb. I am using tomcat as the web server. Thanks

    http://developer.java.sun.com/developer/onlineTraining/Programming/JDCBook/servlet.html

  • How to run servlet by using main?

    How can I use main to run servlet?
    I cannot put request and response object into doGet(request, response) method
    I want this because I want to run this servlet daily and I plan to put it in cron job
    Calvin

    Hi
    Perhaps you cannot run servlet without using browser. But you can make that program as an application in order to run in Dos or Unix shell.
    But still you can run servlet without using browser How?
    You can debug servlets with the same jdb commands you use to debug an applet or an application. The JavaTM Servlet Development Kit (JSDK) provides a standalone program
    called servletrunner that lets you run a servlet without a web browser. On most systems, this program simply runs the java sun.servlet.http.HttpServer command. You
    can, therefore, start a jdb session with the HttpServer class.
    A key point to remember when debugging servlets is that Java Web server and servletrunner achieve servlet loading and unloading by not including the servlets directory on
    the CLASSPATH. This means the servlets are loaded using a custom classloader and not the default system classloader.
    Running servletrunner in Debug Mode
    Running Java Web ServerTM in Debug Mode
    Running servletrunner in Debug Mode
    In this example, the servlets examples directory is included on the CLASSPATH. You can configure the CLASSPATH for debug mode as follows:
    Unix
    $ export CLASSPATH=./lib/jsdk.jar:./examples:$CLASSPATH
    Windows
    $ set CLASSPATH=lib\jsdk.jar;examples;%classpath%
    To start the servletrunner program you can either run the supplied startup script called servletrunner or just supply the servletrunner classes as a parameter to jdb. This
    example uses the parameter to servletrunner.
    $ jdb sun.servlet.http.HttpServer
    Initializing jdb...
    0xee2fa2f8:class(sun.servlet.http.HttpServer)
    > stop in SnoopServlet.doGet
    Breakpoint set in SnoopServlet.doGet
    > run
    run sun.servlet.http.HttpServer
    running ...
    main[1] servletrunner starting with settings:
    port = 8080
    backlog = 50
    max handlers = 100
    timeout = 5000
    servlet dir = ./examples
    document dir = ./examples
    servlet propfile = ./examples/servlet.properties
    To run SnoopServlet in debug mode, enter the following URL in a browser where yourmachine is the machine where you started servlet runner and 8080 is the port number
    displayed in the settings output.
    http://yourmachine:8080/servlet/SnoopServlet
    In this example jdb stops at the first line of the servlet's doGet method. The browser will wait for a response from your servlet until a timeout is reached.
    main[1] SnoopServlet: init
    Breakpoint hit: SnoopServlet.doGet (SnoopServlet:45)
    Thread-105[1]
    We can use the list command to work out where jdb has stopped in the source.
    Thread-105[1] list
    41 throws ServletException, IOException
    42 {
    43 PrintWriter out;
    44
    45 => res.setContentType("text/html");
    46 out = res.getWriter ();
    47
    48 out.println("<html>");
    49 out.println("<head>
    <title>Snoop Servlet
    </title></head>");
    Thread-105[1]
    The servlet can continue using the cont command.
    Thread-105[1] cont
    Running Java Web Server in Debug Mode
    The JSDK release does not contain classes available in the Java Web server and it also has its own special servlet configuration. If you cannot run your servlet from
    servletrunner, then the other option is to run the Java Web server in debug mode.
    To do this add the -debug flag for the first parameter after the java program. For example in the script bin/js change the JAVA line to look like the following. In releases prior
    to the Java 2 platform release, you will also need to change the program pointed to by the variable $JAVA to java_g instead of java.
    Before:
    exec $JAVA $THREADS $JITCOMPILER $COMPILER $MS $MX \
    After:
    exec $JAVA -debug $THREADS $JITCOMPILER
    $COMPILER $MS $MX \
    Here is how to remotely connect to the Java Web Server. The agent password is generated on the standard output from the Java Web Server so it can be redirected into a file
    somewhere. You can find out where by checking the Java Web Server startup scripts.
    jdb -host localhost -password <the agent password>
    The servlets are loaded by a separate classloader if they are contained in the servlets directory, which is not on the CLASSPATH used when starting the Java Web server.
    Unfortunately, when debugging remotely with jdb, you cannot control the custom classloader and request it to load the servlet, so you have to either include the servlets
    directory on the CLASSPATH for debugging or load the servlet by requesting it through a web browser and then placing a breakpoint once the servlet has run.
    In this next example, the jdc.WebServer.PasswordServlet is included on the CLASSPATH when Java Web server starts. The example sets a breakpoint to stop in the service
    method of this servlet, which is the main processing method of this servlet.
    The Java Web Server standard output produces this message, which lets you proceed with the remote jdb session:
    Agent password=3yg23k
    $ jdb -host localhost -password 3yg23k
    Initializing jdb...
    > stop in jdc.WebServer.PasswordServlet:service
    Breakpoint set in jdc.WebServer.PasswordServlet.service
    > stop
    Current breakpoints set:
    jdc.WebServer.PasswordServlet:111
    The second stop lists the current breakpoints in this session and shows the line number where the breakpoint is set. You can now call the servlet through your HTML page. In
    this example, the servlet is run as a POST operation
    <FORM METHOD="post" action="/servlet/PasswordServlet">
    <INPUT TYPE=TEXT SIZE=15 Name="user" Value="">
    <INPUT TYPE=SUBMIT Name="Submit" Value="Submit">
    </FORM>
    You get control of the Java Web Server thread when the breakpoint is reached, and you can continue debugging using the same techniques as used in the Remote Debugging
    section.
    Breakpoint hit: jdc.WebServer.PasswordServlet.service
    (PasswordServlet:111) webpageservice Handler[1] where
    [1] jdc.WebServer.PasswordServlet.service
    (PasswordServlet:111)
    [2] javax.servlet.http.HttpServlet.service
    (HttpServlet:588)
    [3] com.sun.server.ServletState.callService
    (ServletState:204)
    [4] com.sun.server.ServletManager.callServletService
    (ServletManager:940)
    [5] com.sun.server.http.InvokerServlet.service
    (InvokerServlet:101)
    A common problem when using the Java WebServer and other servlet environments is that Exceptions are thrown but are caught and handled outside the scope of your servlet.
    The catch command allows you to trap all these exceptions.
    webpageservice Handler[1] catch java.io.IOException
    webpageservice Handler[1]
    Exception: java.io.FileNotFoundException
    at com.sun.server.http.FileServlet.sendResponse(
    FileServlet.java:153)
    at com.sun.server.http.FileServlet.service(
    FileServlet.java:114)
    at com.sun.server.webserver.FileServlet.service(
    FileServlet.java:202)
    at javax.servlet.http.HttpServlet.service(
    HttpServlet.java:588)
    at com.sun.server.ServletManager.callServletService(
    ServletManager.java:936)
    at com.sun.server.webserver.HttpServiceHandler
    .handleRequest(HttpServiceHandler.java:416)
    at com.sun.server.webserver.HttpServiceHandler
    .handleRequest(HttpServiceHandler.java:246)
    at com.sun.server.HandlerThread.run(
    HandlerThread.java:154)
    This simple example was generated when the file was not found, but this technique can be used for problems with posted data. Remember to use cont to allow the web server
    to proceed. To clear this trap use the ignore command.
    webpageservice Handler[1] ignore java.io.IOException
    webpageservice Handler[1] catch
    webpageservice Handler[1]
    I hope this will help you.
    Thanks
    Bakrudeen

  • How to see full conent when using jdb

    I am using jdb to debug some corruptted char array. When I dump one buffer object that contains char array, I can not view full content since it is too long. Is there a way I can save to this content to a file? Or is there another way to look at full message?
    Thanks a lot.

    Thanks for your response.  All of my pages are php pages in which I use the php require command to display a header and footer.  In CS4, when I open any page from my site in Design or Split view, all I can see is the header.htm file.  I cannot see any of the content from that particular page.  I have to go into code view and delete the <?php require("header.htm"); ?> from the code.  The I can view and edit that page's content after which I have to paste the <?php require("header.htm"); ?> command back in and load the saved file to the server.  A royal pain in the butt.

  • WHERE AND HOW  IS DEBUGGING USED ?

    WHERE AND HOW  IS DEBUGGING USED ? PLEASE GUIDE ME WITH EXAMPLES.
    REWARD POITS GUARENTEED !!

    Hi,
    check these...
    ABAP DEBUGGING
    http://help.sap.com/saphelp_webas620/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9cbb7716-0a01-0010-58b1-a2ddd8361ac0
    Debug Program scheduled Background
    Re: Debugging Report which is scheduled in background
    3 types update,normal and system debugging
    check this for update debugging
    If you set "Update Debbugging" you can debug the codes which works in update tusk.
    SAP std often runs the routine (function or form) to update the database in update tusk mode, these routine start as soon as a commit work is done.
    The commit is called at the end of the program, so you can't debug them by "normal debbugging" because it ends as soon as the program ends
    or----
    All the database updates are performed by the update work processes by calling the functions/subroutines in update tasks.
    These tasks are executed after a commit work is reached in the application. By default you cannot debug these functions.
    TO debug these u need to explicitly activate update debugging.
    for system debugging check the below link
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/5f0640555ae369e10000000a155106/content.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/frameset.htm
    For debugging tutorial:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/5a/4ed93f130f9215e10000000a155106/frameset.htm
    http://www.sapdevelopment.co.uk/tips/debug/debughome.htm
    http://www.sap-basis-abap.com/sapab002.htm
    System Debugging
    If you set this option, the Debugger is also activated for system programs (programs with status S in their program attributes). When you save breakpoints, the System Debugging setting is also saved.
    Update Debugging
    Update function modules do not run in the same user session as the program that is currently running in the ABAP Debugger. These function modules are therefore not included in debugging. Only if you select the Update Debugging option can you display and debug them after the COMMIT WORK.
    Normal Debugging
    Normal debugging is the one we do it by the normal dynamic break points or by /H or by using stattic break points.
    You can switch to diffferent debuggin modes while processing.
    BREAKPOINT
    In the source code we set the Break-point there by clicking the stop button, the system will stop there when you execute the program.
    Watchpoint
    For watchpoints, we need to give some condition and when this condition is satisfied, program will stop
    example : if you want to debug only
    for matnr value 100 than set watch point
    matnr = 100. when value reaches 100 than
    program stops at that point.
    more at
    http://help.sap.com/saphelp_nw04/helpdata/en/c6/617cdce68c11d2b2ab080009b43351/content.htm
    check these documents as well
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/abap/abap-runtime-tools/the%20new%20abap%20debugger%20-%20an%20introduction.pdf
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/f720ea47-0801-0010-f7a3-bd37d44fee8d
    here r some links for debugging...
    Go through these threads for more information on debugging,
    1) debugging
    2) debugging
    3) Debugging
    4) Debugging
    some more links .....
    Introduction: http://www.saplinks.net/index.php?option=com_content&task=view&id=24&Itemid=34
    A PDF file to know knowledge about Debugging
    Some more links:
    http://www.sap-basis-abap.com/sapab002.htm
    Debug Background Programs: http://www.sapdevelopment.co.uk/tips/debug/debug_backjob.htm
    Debugger: http://help.sap.com/saphelp_nw2004s/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    Cheers
    VJ

  • Using JDB in a multithreaded gui environment

    Hi there all I am currently working in a multithreaded gui environment, I would like to use jdb, I manged to launch my project using the jdb in place of the java command ( I did the javac -g thing), I then type run it all launches fine and I am prompted with main[]
    then I type cont abd then it starts I get prompted with > and I am stuck here no code list works I resume try everything but stuck in the treads is there a way of igmoring this and seleting the classes I want to debug I also tried setting breakpoints but htese nere get hit when I type clear I can seee the break point but dont hit thwem even thow those breakpointed sections of code is executed the break point dose not halt the code can anyone help regards Michael

    Hi there all I am currently working in a multithreaded
    gui environment, I would like to use jdb, I manged to
    launch my project using the jdb in place of the java
    command ( I did the javac -g thing), I then type run
    it all launches fine and I am prompted with main[]
    then I type cont abd then it starts I get prompted
    with >At this point your application is running. The ">"
    prompt means jdb has no current thread setting.
    Enter threads to see a list of the threads in
    your application.
    Enter classes to see the classes that are loaded.
    Enter fields className to see the fields of a class.
    Enter suspend to stop the debugee, and then enter where all
    to see the thread stacks, or use the thread command to set
    the current thread, then use the where command.
    A thread must be suspended (or at a breakpoint) and jdb must be set
    to the thread you want to examine (via the thread command,
    or automatically when you hit a breakpoint) before you can display
    the stack, do a list to see the source at that point, or
    use locals to see the local variables for that stack frame.
    Enter resume so the debugee threads will continue.
    and I am stuck here no code list works I resume
    try everything but stuck in the treads is there a way
    of igmoring this and seleting the classes I want to
    debug I also tried setting breakpoints but htese nere
    get hit when I type clear I can seee the break point
    but dont hit thwem even thow those breakpointed
    sections of code is executed the break point dose not
    halt the code can anyone help regards MichaelAre you using the full name of the class (including any
    package names) when setting breakpoints?

  • How to run java servlet without using Web.xml?

    How to run servlet without using Web.xml? From a book, I know that web.xml descriptor is optional, but the book doesn't tell us how to run java servelet without web.xm descriptor. So how to do that? Thanks a lot.

    How to run servlet without using Web.xml?But Tomcat now uses a web.xml for its global server-wide configuration.
    If you'd like to invoke a servlet with:
    http://host/servlet/ServletName
    you have to enable the invoker servlet.
    [from an HTML]
      <FORM METHOD="POST" ACTION="/servlet/HGrepSearchSJ">
    [from resin.conf of Resin Web Server 2.1.12]
      <!--
         - The "invoker" servlet invokes servlet classes from the URL.
         - /examples/basic/servlet/HelloServlet will start the HelloServlet
         - class.  In general, the invoker should only be used
         - for development, not on a deployment server, because it might
         - leave open security holes.
        -->
      <servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>
    [from TOMCAT5.0.19/conf/web.xml, a global server-wide web.xml file]
      <!-- The "invoker" servlet, which executes anonymous servlet classes      -->
      <!-- that have not been defined in a web.xml file.  Traditionally, this   -->
      <!-- servlet is mapped to URL pattern "/servlet/*", but you can map it    -->
      <!-- to other patterns as well.  The extra path info portion of such a    -->
      <!-- request must be the fully qualified class name of a Java class that  -->
      <!-- implements Servlet (or extends HttpServlet), or the servlet name     -->
      <!-- of an existing servlet definition.     This servlet supports the     -->
      <!-- following initialization parameters (default values are in square    -->
      <!-- brackets):                                                           -->
      <!--                                                                      -->
      <!--   debug               Debugging detail level for messages logged     -->
      <!--                       by this servlet.  [0]                          -->
        <servlet>
            <servlet-name>invoker</servlet-name>
            <servlet-class>
              org.apache.catalina.servlets.InvokerServlet
            </servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
        </servlet>
    ---comment out below----------------------------------------------------------
        <!-- The mapping for the invoker servlet -->
    <!--
        <servlet-mapping>
            <servlet-name>invoker</servlet-name>
            <url-pattern>/servlet/*</url-pattern>
        </servlet-mapping>
    -->

  • Deploying a WAR file containing .jsp and servlets (also uses JNI)

    Deploying a WAR file containing .jsp and servlets (also uses JNI) on Windows 2000
    We had problems making it initially work on Sun ONE Web Server 6.0 Service Pack 1 because of lack of good iPlanet Web
    Server documentation on deploying such files.
    This is how we went about it:
    1) Make one of the servlet and JSP (must call another Java Class) web application (.war) examples work with iPlanet Web
    Server.
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\HelloWorld\HelloWorld.war
    and
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    a) Go to your Web Server Administration to deploy the application using GUI Web Application Deploy.
    (We usually use command line, we experienced some issues with the GUI version, but maybe it is fixed in the new Web Server
    service packs)
    From browser, open http://yourserver:8888/
    Click on Select a Server:Manage
    Click on Virtual Server Class
    Click on https-yourserver
    Click on the Web Applications Tab
    Then, click on Deploy Web Application
    Enter the following -
    WAR File On: Local
    WAR File Path: C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Application URI: /jakarta
    Installation Directory: c:\iPlanet\examples\jakarta-examples
    By clicking on OK it deployed the application.
    I can verify that it is deployed by selecting "Edit Web Applications" and I see the following entry:
    Edit     /jakarta     c:/iPlanet/examples/jakarta-examples
    Also, c:/iPlanet/examples/jakarta-examples should have the similar following directory structure ..
    - [images]
    - [jsp]
    - index.html
    - [servlets]
    - [META-INF]
    - [WEB-INF]
    - [classes]
    - [tlds]
    - web.xml
    - index.html
    I restarted the server and accessed it using the following URL from my IE browser:
    http://yourserver/jakarta/index.html
    Then I clicked on the JSP Examples and tried some JSP examples.
    b) Alternatively, you can also deploy the same example from the command-line.
    Make sure C:\iPlanet\Servers\bin\https\httpadmin\bin\ is in your path
    wdeploy deploy      -u /jakarta
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\jakarta-examples
              C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Restart the web server (I don't think you have to restart, but .. might as well).
    2)Deploy your web-application
    My Foo.war has the following structure.
    You can use jar tf Foo.war to look at the file contents from command line (assuming you have JDK installed and the bin is
    in your PATH)
    Foo.war
    - [META-INF]
    - [WEB-INF]
    - web.xml
    - [classes]
    - Bar.class
    - MoServlet.class
    - [lib]
    - ThirdParty.jar
    - [natlib]
    - extlib.dll
    - foo.jsp
    Here is our application scenario:
    foo.jsp uses a class call Bar (it is not in any package). The Bar java class uses classes from ThirdParty.jar. The
    ThirdParty.jar in turn uses JNI to load library extlib.dll. foo.jsp also calls /servlet/Mo as well.
    Now to deploy it, do the following:
    (a) Make sure that within foo.jsp, you import the Bar class ( I don't know why you have to do it, but if you don't you get
    JSP compile error).
    <%@page language="java" import="Bar" contentType="text/html"%>
    (b) Check web.xml (for Servlets)
    Within web.xml, make sure you have the following mappings:
    <servlet>
    <servlet-name> MoLink </servlet-name>
    <servlet-class> MoServlet </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name> MoLink </servlet-name>
    <url-pattern> /servlet/Mo </url-pattern>
    </servlet-mapping>
    (c) Deploy the application
    Using command line:
    wdeploy deploy      -u /foo
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\foo-dir
              Foo.war
    (d) Change web-apps.xml file (for picking up ThirdParty.jar)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    You should see something similar to following after successful deployment.
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true"/>
    Change it to look like following to pick up the ThirdParty.jar
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true">
    <class-loader reload-interval="300"
              classpath="C:/iPlanet/examples/foo-dir/WEB-INF/lib/ThirdParty.jar"
              delegate="false"/>
    </web-app>
    (e) Change jvm12.conf file (for JNI)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    Add or uncomment the following lines:
    #optional - just helps with instrumenting the jsp and servlet code
    jvm.include.CLASSPATH=1
    jvm.enableDebug=1
    nes.jsp.enabledebug=1
    jvm.trace=7
    jvm.verboseMode=1
    #required for JNI
    java.compiler=NONE
    jvm.classpath=.;C:\JDK1.3.1\lib\tools.jar;C:/iPlanet/Servers/plugins/servlets/examples/legacy/beans.10/SDKBeans10.jar;
    jvm.option=-Xrs
    jvm.option=-Xnoagent
    # not sure if this is needed for iPlanet web server
    jvm.option=-Djava.library.path=C:/iPlanet/examples/foo-dir/natlib/ -Djava.compiler=NONE
    (f) Change magnus.conf file (for JNI)
    We HAD to change this file in order for ThirdParty.jar file to pick up the native C++ code using JNI. Apparently, the
    iPlanet Web Server doesn't pick the Environment Variable Path. Because when we had the directory containing the DLL just
    in Path, it didn't work.
    Change Extrapath directive:
    ExtraPath C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    to
    ExtraPath c:/iPlanet/examples/foo-dir/natlib;C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    (g) Apply changes from the Web Server Administration Console and Restart the web server.
    You should be able to see the behaviour that you want from your application.
    http://yourserver/foo/foo.jsp
    Hope this was helpful!!!
    Sonu

    Deploying a WAR file containing .jsp and servlets (also uses JNI) on Windows 2000
    We had problems making it initially work on Sun ONE Web Server 6.0 Service Pack 1 because of lack of good iPlanet Web
    Server documentation on deploying such files.
    This is how we went about it:
    1) Make one of the servlet and JSP (must call another Java Class) web application (.war) examples work with iPlanet Web
    Server.
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\HelloWorld\HelloWorld.war
    and
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    a) Go to your Web Server Administration to deploy the application using GUI Web Application Deploy.
    (We usually use command line, we experienced some issues with the GUI version, but maybe it is fixed in the new Web Server
    service packs)
    From browser, open http://yourserver:8888/
    Click on Select a Server:Manage
    Click on Virtual Server Class
    Click on https-yourserver
    Click on the Web Applications Tab
    Then, click on Deploy Web Application
    Enter the following -
    WAR File On: Local
    WAR File Path: C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Application URI: /jakarta
    Installation Directory: c:\iPlanet\examples\jakarta-examples
    By clicking on OK it deployed the application.
    I can verify that it is deployed by selecting "Edit Web Applications" and I see the following entry:
    Edit     /jakarta     c:/iPlanet/examples/jakarta-examples
    Also, c:/iPlanet/examples/jakarta-examples should have the similar following directory structure ..
    - [images]
    - [jsp]
    - index.html
    - [servlets]
    - [META-INF]
    - [WEB-INF]
    - [classes]
    - [tlds]
    - web.xml
    - index.html
    I restarted the server and accessed it using the following URL from my IE browser:
    http://yourserver/jakarta/index.html
    Then I clicked on the JSP Examples and tried some JSP examples.
    b) Alternatively, you can also deploy the same example from the command-line.
    Make sure C:\iPlanet\Servers\bin\https\httpadmin\bin\ is in your path
    wdeploy deploy      -u /jakarta
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\jakarta-examples
              C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Restart the web server (I don't think you have to restart, but .. might as well).
    2)Deploy your web-application
    My Foo.war has the following structure.
    You can use jar tf Foo.war to look at the file contents from command line (assuming you have JDK installed and the bin is
    in your PATH)
    Foo.war
    - [META-INF]
    - [WEB-INF]
    - web.xml
    - [classes]
    - Bar.class
    - MoServlet.class
    - [lib]
    - ThirdParty.jar
    - [natlib]
    - extlib.dll
    - foo.jsp
    Here is our application scenario:
    foo.jsp uses a class call Bar (it is not in any package). The Bar java class uses classes from ThirdParty.jar. The
    ThirdParty.jar in turn uses JNI to load library extlib.dll. foo.jsp also calls /servlet/Mo as well.
    Now to deploy it, do the following:
    (a) Make sure that within foo.jsp, you import the Bar class ( I don't know why you have to do it, but if you don't you get
    JSP compile error).
    <%@page language="java" import="Bar" contentType="text/html"%>
    (b) Check web.xml (for Servlets)
    Within web.xml, make sure you have the following mappings:
    <servlet>
    <servlet-name> MoLink </servlet-name>
    <servlet-class> MoServlet </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name> MoLink </servlet-name>
    <url-pattern> /servlet/Mo </url-pattern>
    </servlet-mapping>
    (c) Deploy the application
    Using command line:
    wdeploy deploy      -u /foo
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\foo-dir
              Foo.war
    (d) Change web-apps.xml file (for picking up ThirdParty.jar)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    You should see something similar to following after successful deployment.
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true"/>
    Change it to look like following to pick up the ThirdParty.jar
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true">
    <class-loader reload-interval="300"
              classpath="C:/iPlanet/examples/foo-dir/WEB-INF/lib/ThirdParty.jar"
              delegate="false"/>
    </web-app>
    (e) Change jvm12.conf file (for JNI)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    Add or uncomment the following lines:
    #optional - just helps with instrumenting the jsp and servlet code
    jvm.include.CLASSPATH=1
    jvm.enableDebug=1
    nes.jsp.enabledebug=1
    jvm.trace=7
    jvm.verboseMode=1
    #required for JNI
    java.compiler=NONE
    jvm.classpath=.;C:\JDK1.3.1\lib\tools.jar;C:/iPlanet/Servers/plugins/servlets/examples/legacy/beans.10/SDKBeans10.jar;
    jvm.option=-Xrs
    jvm.option=-Xnoagent
    # not sure if this is needed for iPlanet web server
    jvm.option=-Djava.library.path=C:/iPlanet/examples/foo-dir/natlib/ -Djava.compiler=NONE
    (f) Change magnus.conf file (for JNI)
    We HAD to change this file in order for ThirdParty.jar file to pick up the native C++ code using JNI. Apparently, the
    iPlanet Web Server doesn't pick the Environment Variable Path. Because when we had the directory containing the DLL just
    in Path, it didn't work.
    Change Extrapath directive:
    ExtraPath C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    to
    ExtraPath c:/iPlanet/examples/foo-dir/natlib;C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    (g) Apply changes from the Web Server Administration Console and Restart the web server.
    You should be able to see the behaviour that you want from your application.
    http://yourserver/foo/foo.jsp
    Hope this was helpful!!!
    Sonu

  • Enable Node Manager debug using WLST

    Hi,
    I would like to enable debug for node manager using WLST instead of using the Admin console - by selecting the check box for "Debug Enabled" property under Environment > Machine > Configuration > Node Manager in the Admin console.
    I could locate the MBean name to 'NodeManagerMBean' and the property to 'DebugEnabled', but I'm not sure how to script it.
    Can anybody please guide me?
    Thanks in advance
    Edited by: vikascv on Apr 29, 2009 9:23 AM

    Here you go
    Enable Node Manager debug using WLST
    <a class="jive-link-external" href="http://www.togotutor.com">http://www.togotutor.com</a> (Learn Programming and Administration for Free at Togotutor)
    def connection_to_Admin():
    try:
    connect(username, password, URL)
    except wlst.WLSTException, ex:
    print "Caught exception while connecting: %s" % ex
    else:
    print "------- Connected successfully! ---------"
    connection_to_Admin() #Calling the connect Function
    edit()
    startEdit()
    cd('/Machines/MS1/NodeManager/Machine_1')
    cmo.setDebugEnabled(true)
    activate()
    Thanks
    Togotutor
    <b><a class="jive-link-external" href="http://www.togotutor.com">http://www.togotutor.com</a> (Learn Programming and Administration for Free)</b><</td>

  • Debugging using Eclipse and non-standalone 10g

    Hey - is it possible to perform remote debugging using Eclipse against the non-standalone version of the 10g App Server? I've tried some of the hints listed in this forum (the most promising seemed to be starting oc4j using this command-line command:
    java -classic -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=2727 -jar oc4j.jar, then connecting with the Eclipse debugger, which I managed to do - though I had to change one of the parameters because the designated file [a timezone file] could not be found - after the change things seemed to start up correctly. However, when I tried to hit http://localhost:2727 I got a "server not found or DNS error"). I don't know if the debugging works with the non-standalone version of 10g or not... or if I should be using some other startup command so hopefully y'all can help :)
    Thanks,
    Scott

    Scott, apparently you have fallen pray of one of the most common misunderstandings of oc4j. Oc4j, namely, Oracle Application Server Container for j2ee, is a COMPLETE j2ee server. It supports http and https by itself. It is also an ejb container and a lot more. It can be used as a standalone or, with a different configuration, integrated into Oracle Application Server as its core component.
    When you use the command "java -jar oc4j.jar ...", you are starting an instance of "standalone oc4j" or "oc4j standalone" as mentioned above, albeit from an OAS installation. In contrast, you can start one instance of Oracle Application Server by "<ORACLE_HOME>/opmn/bin/opmn startall", which will starts, besides several other components, one or several oc4j processes as its oc4j component. This OAS is an HTTP server that takes initial requests and routs the requests that are for OC4J to OC4J server. It may handle some of the requests by itself, or routs other http requests to other components, like mod_plsql. Finally, what we usually called "farm" is a collection of OAS clusters and instances that share the same OAS Infrastructure.
    What I have written is just a tiny mini introduction of the OAS. For starters, oc4j is for use by development and small-medium scale production deployments. Plese take a look at the book "Oracle Application Server Containers for J2EE Standalone User's Guide" and then, "Oracle Application Server Concepts". You can find them by
    1. go to http://otn.oracle.com
    2. select "documentation" pull-down menu and then "application server"
    3. go to the first "view library" or the one suits you.
    4. view the "Oracle Application Server Concepts"
    5. or go to "List of All Books" and you will see all of them!
    Well, the best place to self-teach oc4j is, besides googling with site:oracle.com, the oc4j homepage,
    http://www.oracle.com/technology/tech/java/oc4j/index.html
    The above is written in case you need more information. Now let me come to your specific questions.
    1. how to hit the OC4J instance directly, bypassing an HTTP server entry?Since what you started is an oc4j standalone, it does not make any sense to say "bypassing an HTTP server entry". Oc4j instance itself IS an http server. To access its http service, try
    http://<yourHostNameOrIP>:<httpPort>/<yourAppWebContextRoot>
    where the httpPort and yourAppWebContextRoot can be found in default-web-site.xml or http-web-site.xml. Which one or other web-site.xmls are effective is determined in <OC4J_HOME>/config/server.xml. Here the OC4J_HOME refers to your "C:/OraHome1/j2ee/home".
    2. how to get the HTTP server started via the command-line startup?As said above, you already got an HTTP server running.
    What I suggest for you is to play with oc4j standalone. You can come to OAS later:
    1. download oc4j standalone distribution, "Oracle Containers for J2EE 10g (10.1.3) Developer Preview 3", from here "http://www.oracle.com/technology/software/products/ias/preview.html"
    2. unzip the downloaded file. What you get is basically the same to a part of your existing "C:/OraHome". Go to j2ee/home. Run
    java -Xdebug -Xnoagent -Djava.compiler=none -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=3301 -jar oc4j.jar
    Make sure you are using java 1.4.2 sdk.
    3. "new" your remote debugger from Eclicpse and specify the hostname and port 3301.
    4. http://<yourHost>:8888/
    A further note: to debug jsp's, you can use Jdeveloper that allows you to set debug points directly in a jsp that is running in its embeded oc4j server.

  • How to pass servlet parameter using encodeURL function in JSP page

    Hi!!!
    I have a very urgently problem.
    in my JSP I have this:
    <IMG border="0" src='<%=response.encodeURL("/MyImageServlet")%>'>
    In this way, my servlet works fine (and I have in my page my blob-image).
    But I have to pass to my servlet a list of dynamic parameter. I have tried all the possibilities like:
    <IMG border="0" src='<%= (response.encodeURL("/MyImageServlet") + "?Param_name=" + sessionBean.getParamValue() + "&anotherParam" + sessionBean.getAnotherParamValue())%>'
    but nothing....
    In my servlet I use the init function to retrieve the initial parameters(defined in my web.xml file) in this way:
    public void init(ServletConfig config) throws ServletException
    super.init(config);
    myParam = getInitParameter( "name_of_param");
    but I retrieve only the default value (-1).
    How to pass to my servlet the parameters? Please help me!
    Excuse me for my english,
    thank you for your help!

    Hi!
    Thanks for your reply!
    I have tried this solution but it doesn't work!
    When I do getInitParameter in the init function, the servlet take the default values...
    Maybe I have wrote something wrong?
    Excuse me for my english,
    Thanks

  • Any way to invoke a servlet without using "action=" in HTML

    Hello,
    Is there any way to invoke a servlet without using "action=" attribute of Form tag in the HTML form.
    I.e. if I need to run the servlet from a hyperlink, how could it be possible?
    Or If I need to run a servlet from a "window.Open()" method using java script, how could it be possible?
    The error I am facing...
    HTTP Status 405 - HTTP method GET is not supported by this URL
    type Status report
    message HTTP method GET is not supported by this URL
    description The specified HTTP method is not allowed for the requested resource (HTTP method GET is not supported by this URL).
    Thanks,
    Sandeep

    Maybe your URL needs to use POST.

  • How to configure a servlet program using Eclipse?

    Hi,
    Am just learning Java and J2ee..Am not efficient..Don't laugh @ my question..
    I installed jdk 1.6, Apache tomcat 5.0 and eclipse 3.2.1 and also installed wtp plugin to work with j2ee perspective of eclipse..I did this in my PC..could U plz tell me what I need to install in addition?
    How come I write my Servlet program using Eclipse...
    Thanq
    Vani.

    This is the Sun Java System Messaging Server forum. Though this application software bears Java in it's name it has nothing to do with the programming language Java.

  • How to use jdb.exe

    I want to know how to use jdb.exe program
    i want to use debugger so how i use this jdb.exe
    plz reply me
    byeee

    I would suggest looking at the debugger in eclipse. www.eclipse.org
    It is GUI based, much simpler to use and in many ways more powerful.

Maybe you are looking for

  • How do I get my calendar to adapt to time zone change?

    My calendar is run in MS Outlook on my windows office computer and syncs via Exchange 2003 server to my iPhone. I live in Europe. I recently attended a business event in the States. All my appointments were in my Outllook calendar in local time. But

  • Iphone not showing up in Itunes or Iphoto

    Hi I recently performed an erase and install of Snow leopard on my Mac. I then used migration assistant to restore my data. I notice that when I plug my Iphone into my Mac Pro, it does not show up in Itunes or Iphoto. How can I get it to show up agai

  • Customize colors in horizontal bar in charts OBIEE 10g

    Hi All, I have a chart report which has horizontal bars. I want th change the color of each bar to different colors. I have no condition,any color is fine for me. How can I achieve it? In Format Chart Data, I haev specified different colors,but it gi

  • Can't see my applet in IE 6

    i don't know why....i can see my applet without problems in Opera but when i try it in IE6 nothing happens....just a blank page appears thats all...what is the problem? i have the latest java...and i have also the MS VM...plz help

  • Photo Upload in ERP2004 IT0002 Screen

    Hi ... I am trying to upload employee photo in IT0002 screen but I am not able to do that.The same program is working fine in 4.6C but not in ERP2004. Can anybody tell me how can I upload photo in ERP2004. Thanks very much, Sinchan