Tomcat directory structure + jsp

Hi all,
I have been trying for a long time now to setup my tomcat-directory as described, but I don't get my application running... My directory structure is currently as follows:
d:\
    webapp\
         web\
              WEB-INF\
                    classes\
                         servlet
                    libThe path for tomcat is set to d:\webapp\web, where my JSPs are. From the JSPs, I start some applets - the problem is, where do I have to put them? They are in the directory project; if I put this directory in WEB-INF/classes, they are not found. If I put them directly in the web-directory, they are found, but not the classes they depend on... I can then put all the classes I need in the web-directory, and my application runs, but as far as I understood, this is not the supposed setting :-( And besides, the only reason for the WEB-INF directory would then be the servlets inside (which run without problems!)
Might I do something wrong in calling the applets? In the moment, I start them with <applet code="project/Start.class"> Or do I need to change something in the web.xml file?
Thanks for any hints,
Thea

but as far as I understood, this is not the supposed setting That IS the appropriate setting.
An applet runs on the client machine.
Therefore the client has to download all the class files to run the applet.
The client cannot download any classes that are under WEB-INF. WEB-INF directory is for the server only.
Therefore any classes needed to run your applet must be outside of the WEB-INF folder, so they can be downloaded.
JSP/Servlet code runs on the server side. The code for this you can put under WEB-INF, and it will only be available to the server. That way you have your application, but don't have the code freely downloadable.
Cheers,
evnafets

Similar Messages

  • Tomcat directory structure

    Hi, I've programmed a client - server application based on an applet - servlet communication and all is running ok. I've my applet and all the classes needed by it in Root/ directory and my servlet and all the classes needed by it in Root/WEB-INF/classes/ directory. All clases have no structure. Te problem appears when I want to give a certain structure to all my classes (put them in certain packages).
    For example, if my applet belongs to the packate myPackage I put it in Root/myPackage/ and if my servlet belongs to the package myServletPackage I put it in Root/WEB-INF/classes/myServletPackage/ and so on.
    Finally I configure my web.xml file like this:
    <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>myServletPackage.ElServlet</servlet-class>
    </servlet>
    After restarting tomcat when I try to run the application It appear a No class foun exception.
    Can anyone tell me what I'm doing wrong?
    Thks and sorry for my english.

    Sorry for my bad example. In fact I put the Root directory as an example, It's real name is MetroNet and, as I say on the previous topic the problem appear when I try to organize my classes in different packages.
    thnks

  • Web Application directory structure

    Please can someone help me with directing me to any online guide as to how webapp could be created and web.xml configuration in Sun Application server 8.
    I do not understand the directory structure of sun, unlike Tomcat the webapps contains all the virtual context part with a default ROOT direct set in the server.xml as the default docbase.
    Now, where is the default ROOT in Sun server? Where can I put my index file. When I create a web context, where will I put it? Does J2EE has similar WEB-INF structure in Tomcat? Does it have web.xml to configure the webapp
    Finally, I have written a simple EJB called Hello World using stateless protocol. I have my Hello.class, HelloHome.class and HelloBean.class. I also have ejb-jar.xml for container configuration. I have jar then up to hello.jar and have deployed them. Now I want to access the beans, Home bean to be precises. I have written a hello.jsp and I put it in the orignal directory where the main index.html file is in Sun server which is /user/Sun/AppServer/domains/domain1/docroot, I got errors.
    Could someone shade a light on this please.
    Thanks Guys.
    NB
    Do not point me to online reference
    I have awared max point for this question

    The developer's guide discusses in pretty clear terms how to deploy a J2EE app from a directory structure.
    The tomcat directory structure is really the same as a packaged war which once you read the documentation you will see is basically no different with SJSAS.
    You need to deploy an application. See previous posts on how to have docroot be the top level (search for posts by janluehe)

  • Project directory structure

    I'm do jsp development onto Tomcat and about 3 months ago moved to Jdev. I've set up my project to go against the Tomcat directory structure but am not sure this is the best thing to do when using jdev. Does anybody have a recommended directory structure to use for a project?

    I got this worked out.

  • Directory Structure Problem

    Hi i am niew to EJB
    my directory structure is like this
    App
    -----JSP,s
    -----WEB-INF
    --------classes
    -------package name
    -----------servlet class file
    -----PAckage Name
    -----------Sesion Bean Class File
    my servlet is calling the session bean but when i open this app in weblogic builder it only shows jsp/servlet related setting
    what is the correct directory structure
    jsp is calling a servlet which in turn calles a session bean
    kindly tell me
    Puneet

    I don't know why but weblogic builder sometimes behaves weird. Anyway, my suggestion is to try out to edit your application.xml manually.
    good luck,
    Fehmi

  • I have a created a directory structure ias\ias-samples\myapps\src\docroot.In docroot folder i have a single jsp.i created a war file having that jsp,and ear file having the war file

    I deployed the ear file.Now i try calling http://localhost/myapps/test.jsp ??
    i'm i doing the right thing ?

    Hi,
    This is right provided you have installed the webserver & app server
    on the same machine and the port number for the web server is 80 by
    default.
    Regards
    Raj
    Arif Khan wrote:
    I have a created a directory structure
    ias\ias-samples\myapps\src\docroot.In docroot folder i have a single
    jsp.i created a war file having that jsp,and ear file having the war
    file
    I deployed the ear file.Now i try calling
    http://localhost/myapps/test.jsp ??
    i'm i doing the right thing ?
    Try our New Web Based Forum at http://softwareforum.sun.com
    Includes Access to our Product Knowledge Base!

  • Problem with Configuring Tomcat for running jsp web applications..Plz HELP

    I am using Tomcat 5.5 and Jdk 1.5.0_12 and Oracle 10g. I am using jdbc-odbc bridge connection
    to connect to the database. I have placed my project folder called
    tdm under the webapps folder in Tomcat. This 'tdm' folder consists of
    a collection of html pages,jsp pages and images of my project. Also I created a
    WEB-INF folderand in that I have lib folder which contains catalina-root.jar
    , classes12.jar and nls_charset.jar files. And also in the WEB-INF folder I have the web.xml
    file which looks like this
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
    Copyright 2004 The Apache Software Foundation
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    -->
    <web-app>
    <resource-ref>
    <description>Oracle Datasource example</description>
    <res-ref-name>jdbc/gdn</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </web-app>
    My Server.xml file in Tomcat\conf folder is as follows
    <!-- Example Server Configuration File -->
    <!-- Note that component elements are nested corresponding to their
    parent-child relationships with each other -->
    <!-- A "Server" is a singleton element that represents the entire JVM,
    which may contain one or more "Service" instances. The Server
    listens for a shutdown command on the indicated port.
    Note: A "Server" is not itself a "Container", so you may not
    define subcomponents such as "Valves" or "Loggers" at this level.
    -->
    <Server port="8005" shutdown="SHUTDOWN">
    <!-- Comment these entries out to disable JMX MBeans support used for the
    administration web application -->
    <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    <!-- Global JNDI resources -->
    <GlobalNamingResources>
    <!-- Test entry for demonstration purposes -->
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <!-- Editable user database that can also be used by
    UserDatabaseRealm to authenticate users -->
    <Resource name="UserDatabase" auth="Container"
    type="org.apache.catalina.UserDatabase"
    description="User database that can be updated and saved"
    factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
    pathname="conf/tomcat-users.xml" />
    <Resource name="jdbc/gdn" auth="Container"
    type="javax.sql.DataSource" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
    url="jdbc:odbc:gdn"
    username="system" password="tiger" maxActive="20" maxIdle="10"
    maxWait="-1"/>
    </GlobalNamingResources>
    <!-- A "Service" is a collection of one or more "Connectors" that share
    a single "Container" (and therefore the web applications visible
    within that Container). Normally, that Container is an "Engine",
    but this is not required.
    Note: A "Service" is not itself a "Container", so you may not
    define subcomponents such as "Valves" or "Loggers" at this level.
    -->
    <!-- Define the Tomcat Stand-Alone Service -->
    <Service name="Catalina">
    <!-- A "Connector" represents an endpoint by which requests are received
    and responses are returned. Each Connector passes requests on to the
    associated "Container" (normally an Engine) for processing.
    By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
    You can also enable an SSL HTTP/1.1 Connector on port 8443 by
    following the instructions below and uncommenting the second Connector
    entry. SSL support requires the following steps (see the SSL Config
    HOWTO in the Tomcat 5 documentation bundle for more detailed
    instructions):
    * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
    later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
    * Execute:
    %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
    $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
    with a password value of "changeit" for both the certificate and
    the keystore itself.
    By default, DNS lookups are enabled when a web application calls
    request.getRemoteHost(). This can have an adverse impact on
    performance, so you can disable it by setting the
    "enableLookups" attribute to "false". When DNS lookups are disabled,
    request.getRemoteHost() will return the String version of the
    IP address of the remote client.
    -->
    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector
    port="5050" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" />
    <!-- Note : To disable connection timeouts, set connectionTimeout value
    to 0 -->
         <!-- Note : To use gzip compression you could set the following properties :
                   compression="on"
                   compressionMinSize="2048"
                   noCompressionUserAgents="gozilla, traviata"
                   compressableMimeType="text/html,text/xml"
         -->
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    <!--
    <Connector port="8443"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" disableUploadTimeout="true"
    acceptCount="100" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" />
    -->
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009"
    enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
    <!-- See proxy documentation for more information about using this. -->
    <!--
    <Connector port="8082"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" acceptCount="100" connectionTimeout="20000"
    proxyPort="80" disableUploadTimeout="true" />
    -->
    <!-- An Engine represents the entry point (within Catalina) that processes
    every request. The Engine implementation for Tomcat stand alone
    analyzes the HTTP headers included with the request, and passes them
    on to the appropriate Host (virtual host). -->
    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <!-- Define the top level container in our container hierarchy -->
    <Engine name="Catalina" defaultHost="localhost">
    <!-- The request dumper valve dumps useful debugging information about
    the request headers and cookies that were received, and the response
    headers and cookies that were sent, for all requests received by
    this instance of Tomcat. If you care only about requests to a
    particular virtual host, or a particular application, nest this
    element inside the corresponding <Host> or <Context> entry instead.
    For a similar mechanism that is portable to all Servlet 2.4
    containers, check out the "RequestDumperFilter" Filter in the
    example application (the source for this filter may be found in
    "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
    Request dumping is disabled by default. Uncomment the following
    element to enable it. -->
    <!--
    <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
    -->
    <!-- Because this Realm is here, an instance will be shared globally -->
    <!-- This Realm uses the UserDatabase configured in the global JNDI
    resources under the key "UserDatabase". Any edits
    that are performed against this UserDatabase are immediately
    available for use by the Realm. -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
    resourceName="UserDatabase"/>
    <!-- Comment out the old realm but leave here for now in case we
    need to go back quickly -->
    <!--
    <Realm className="org.apache.catalina.realm.MemoryRealm" />
    -->
    <!-- Replace the above Realm with one of the following to get a Realm
    stored in a database and accessed via JDBC -->
    <!--
    <Realm className="org.apache.catalina.realm.JDBCRealm"
    driverName="org.gjt.mm.mysql.Driver"
    connectionURL="jdbc:mysql://localhost/authority"
    connectionName="test" connectionPassword="test"
    userTable="users" userNameCol="user_name" userCredCol="user_pass"
    userRoleTable="user_roles" roleNameCol="role_name" />
    -->
    <!--
    <Realm className="org.apache.catalina.realm.JDBCRealm"
    driverName="oracle.jdbc.driver.OracleDriver"
    connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
    connectionName="scott" connectionPassword="tiger"
    userTable="users" userNameCol="user_name" userCredCol="user_pass"
    userRoleTable="user_roles" roleNameCol="role_name" />
    -->
    <!--
    <Realm className="org.apache.catalina.realm.JDBCRealm"
    driverName="sun.jdbc.odbc.JdbcOdbcDriver"
    connectionURL="jdbc:odbc:CATALINA"
    userTable="users" userNameCol="user_name" userCredCol="user_pass"
    userRoleTable="user_roles" roleNameCol="role_name" />
    -->
    <!-- Define the default virtual host
    Note: XML Schema validation will not work with Xerces 2.2.
    -->
    <Host name="localhost" appBase="webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
    <!-- Defines a cluster for this node,
    By defining this element, means that every manager will be changed.
    So when running a cluster, only make sure that you have webapps in there
    that need to be clustered and remove the other ones.
    A cluster has the following parameters:
    className = the fully qualified name of the cluster class
    name = a descriptive name for your cluster, can be anything
    mcastAddr = the multicast address, has to be the same for all the nodes
    mcastPort = the multicast port, has to be the same for all the nodes
    mcastBindAddr = bind the multicast socket to a specific address
    mcastTTL = the multicast TTL if you want to limit your broadcast
    mcastSoTimeout = the multicast readtimeout
    mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
    mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
    tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
    tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
    in case of multiple ethernet cards.
    auto means that address becomes
    InetAddress.getLocalHost().getHostAddress()
    tcpListenPort = the tcp listen port
    tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
    has a wakup bug in java.nio. Set to 0 for no timeout
    printToScreen = true means that managers will also print to std.out
    expireSessionsOnShutdown = true means that
    useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
    false means to replicate the session after each request.
    false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
    <%
    HashMap map = (HashMap)session.getAttribute("map");
    map.put("key","value");
    %>
    replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
    * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
    * Synchronous means that the thread that executes the request, is also the
    thread the replicates the data to the other nodes, and will not return until all
    nodes have received the information.
    * Asynchronous means that there is a specific 'sender' thread for each cluster node,
    so the request thread will queue the replication request into a "smart" queue,
    and then return to the client.
    The "smart" queue is a queue where when a session is added to the queue, and the same session
    already exists in the queue from a previous request, that session will be replaced
    in the queue instead of replicating two requests. This almost never happens, unless there is a
    large network delay.
    -->
    <!--
    When configuring for clustering, you also add in a valve to catch all the requests
    coming in, at the end of the request, the session may or may not be replicated.
    A session is replicated if and only if all the conditions are met:
    1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
    2. a session exists (has been created)
    3. the request is not trapped by the "filter" attribute
    The filter attribute is to filter out requests that could not modify the session,
    hence we don't replicate the session after the end of this request.
    The filter is negative, ie, anything you put in the filter, you mean to filter out,
    ie, no replication will be done on requests that match one of the filters.
    The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
    filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
    ending with .gif and .js are intercepted.
    The deployer element can be used to deploy apps cluster wide.
    Currently the deployment only deploys/undeploys to working members in the cluster
    so no WARs are copied upons startup of a broken node.
    The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
    When a new war file is added the war gets deployed to the local instance,
    and then deployed to the other instances in the cluster.
    When a war file is deleted from the watchDir the war is undeployed locally
    and cluster wide
    -->
    <!--
    <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
    managerClassName="org.apache.catalina.cluster.session.DeltaManager"
    expireSessionsOnShutdown="false"
    useDirtyFlag="true"
    notifyListenersOnReplication="true">
    <Membership
    className="org.apache.catalina.cluster.mcast.McastService"
    mcastAddr="228.0.0.4"
    mcastPort="45564"
    mcastFrequency="500"
    mcastDropTime="3000"/>
    <Receiver
    className="org.apache.catalina.cluster.tcp.ReplicationListener"
    tcpListenAddress="auto"
    tcpListenPort="4001"
    tcpSelectorTimeout="100"
    tcpThreadCount="6"/>
    <Sender
    className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
    replicationMode="pooled"
    ackTimeout="15000"/>
    <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
    filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
    <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
    tempDir="/tmp/war-temp/"
    deployDir="/tmp/war-deploy/"
    watchDir="/tmp/war-listen/"
    watchEnabled="false"/>
    </Cluster>
    -->
    <!-- Normally, users must authenticate themselves to each web app
    individually. Uncomment the following entry if you would like
    a user to be authenticated the first time they encounter a
    resource protected by a security constraint, and then have that
    user identity maintained across all web applications contained
    in this virtual host. -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->
    <!-- Access log processes all requests for this virtual host. By
    default, log files are created in the "logs" directory relative to
    $CATALINA_HOME. If you wish, you can specify a different
    directory with the "directory" attribute. Specify either a relative
    (to $CATALINA_HOME) or absolute path to the desired directory.
    -->
    <!--
    <Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs" prefix="localhost_access_log." suffix=".txt"
    pattern="common" resolveHosts="false"/>
    -->
    <!-- Access log processes all requests for this virtual host. By
    default, log files are created in the "logs" directory relative to
    $CATALINA_HOME. If you wish, you can specify a different
    directory with the "directory" attribute. Specify either a relative
    (to $CATALINA_HOME) or absolute path to the desired directory.
    This access log implementation is optimized for maximum performance,
    but is hardcoded to support only the "common" and "combined" patterns.
    -->
    <!--
    <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
    directory="logs" prefix="localhost_access_log." suffix=".txt"
    pattern="common" resolveHosts="false"/>
    -->
    <Context path="/tdm" docBase="tdm" debug="0" reloadable="true" />
    </Host>
    </Engine>
    </Service>
    </Server>
    I have set the context path to /tdm in the server.xml file. Should this be placed in context.xml?
    My first page in the project is called Homepage.html. To start my project I give http://localhost:5050/tdm/homepage.html
    in a browser. Here I accept a username and password from the user and then do the validation in
    a valid.jsp file, where I connect to the database and check and use jsp:forward to go to next pages
    accordingly. However when I enter the username and password and click Go in the homepage, nothing is
    displayed on the next page. The URL in the browser says valid.jsp but a blank screen appears.
    WHY DOES IT HAPPEN SO? DOES IT MEAN THAT TOMCAT IS NOT RECOGNIZING JAVA IN MY SYSTEM OR IS IT A PROBLEM
    WITH THE DATABASE CONNECTION OR SOMETHING ELSE? I FEEL THAT TOMCAT IS NOT EXECUTING JSP COMMANDS?
    IS IT POSSIBLE?WHY WILL THIS HAPPEN?
    I set the JAVA_HOME and CATALINA_HOME environment to the jdk and tomcat folders resp.
    Is there any other thing that I need to set in classpath? Should I have my project as a
    WAR file in the webapps of TOMCAT or just a folder i.e. directory structure will fine?

    I am using Tomcat 5.5 and Jdk 1.5.0_12 and Oracle 10g. I am using jdbc-odbc bridge connection
    to connect to the database. I have placed my project folder called
    tdm under the webapps folder in Tomcat. This 'tdm' folder consists of
    a collection of html pages,jsp pages and images of my project. Also I created a
    WEB-INF folderand in that I have lib folder which contains catalina-root.jar
    , classes12.jar and nls_charset.jar files. And also in the WEB-INF folder I have the web.xml
    file which looks like this
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
    Copyright 2004 The Apache Software Foundation
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    -->
    <web-app>
    <resource-ref>
    <description>Oracle Datasource example</description>
    <res-ref-name>jdbc/gdn</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </web-app>
    My Server.xml file in Tomcat\conf folder is as follows
    <!-- Example Server Configuration File -->
    <!-- Note that component elements are nested corresponding to their
    parent-child relationships with each other -->
    <!-- A "Server" is a singleton element that represents the entire JVM,
    which may contain one or more "Service" instances. The Server
    listens for a shutdown command on the indicated port.
    Note: A "Server" is not itself a "Container", so you may not
    define subcomponents such as "Valves" or "Loggers" at this level.
    -->
    <Server port="8005" shutdown="SHUTDOWN">
    <!-- Comment these entries out to disable JMX MBeans support used for the
    administration web application -->
    <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    <!-- Global JNDI resources -->
    <GlobalNamingResources>
    <!-- Test entry for demonstration purposes -->
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <!-- Editable user database that can also be used by
    UserDatabaseRealm to authenticate users -->
    <Resource name="UserDatabase" auth="Container"
    type="org.apache.catalina.UserDatabase"
    description="User database that can be updated and saved"
    factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
    pathname="conf/tomcat-users.xml" />
    <Resource name="jdbc/gdn" auth="Container"
    type="javax.sql.DataSource" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
    url="jdbc:odbc:gdn"
    username="system" password="tiger" maxActive="20" maxIdle="10"
    maxWait="-1"/>
    </GlobalNamingResources>
    <!-- A "Service" is a collection of one or more "Connectors" that share
    a single "Container" (and therefore the web applications visible
    within that Container). Normally, that Container is an "Engine",
    but this is not required.
    Note: A "Service" is not itself a "Container", so you may not
    define subcomponents such as "Valves" or "Loggers" at this level.
    -->
    <!-- Define the Tomcat Stand-Alone Service -->
    <Service name="Catalina">
    <!-- A "Connector" represents an endpoint by which requests are received
    and responses are returned. Each Connector passes requests on to the
    associated "Container" (normally an Engine) for processing.
    By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
    You can also enable an SSL HTTP/1.1 Connector on port 8443 by
    following the instructions below and uncommenting the second Connector
    entry. SSL support requires the following steps (see the SSL Config
    HOWTO in the Tomcat 5 documentation bundle for more detailed
    instructions):
    * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
    later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
    * Execute:
    %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
    $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
    with a password value of "changeit" for both the certificate and
    the keystore itself.
    By default, DNS lookups are enabled when a web application calls
    request.getRemoteHost(). This can have an adverse impact on
    performance, so you can disable it by setting the
    "enableLookups" attribute to "false". When DNS lookups are disabled,
    request.getRemoteHost() will return the String version of the
    IP address of the remote client.
    -->
    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector
    port="5050" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" />
    <!-- Note : To disable connection timeouts, set connectionTimeout value
    to 0 -->
         <!-- Note : To use gzip compression you could set the following properties :
                   compression="on"
                   compressionMinSize="2048"
                   noCompressionUserAgents="gozilla, traviata"
                   compressableMimeType="text/html,text/xml"
         -->
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    <!--
    <Connector port="8443"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" disableUploadTimeout="true"
    acceptCount="100" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" />
    -->
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009"
    enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
    <!-- See proxy documentation for more information about using this. -->
    <!--
    <Connector port="8082"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" acceptCount="100" connectionTimeout="20000"
    proxyPort="80" disableUploadTimeout="true" />
    -->
    <!-- An Engine represents the entry point (within Catalina) that processes
    every request. The Engine implementation for Tomcat stand alone
    analyzes the HTTP headers included with the request, and passes them
    on to the appropriate Host (virtual host). -->
    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <!-- Define the top level container in our container hierarchy -->
    <Engine name="Catalina" defaultHost="localhost">
    <!-- The request dumper valve dumps useful debugging information about
    the request headers and cookies that were received, and the response
    headers and cookies that were sent, for all requests received by
    this instance of Tomcat. If you care only about requests to a
    particular virtual host, or a particular application, nest this
    element inside the corresponding <Host> or <Context> entry instead.
    For a similar mechanism that is portable to all Servlet 2.4
    containers, check out the "RequestDumperFilter" Filter in the
    example application (the source for this filter may be found in
    "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
    Request dumping is disabled by default. Uncomment the following
    element to enable it. -->
    <!--
    <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
    -->
    <!-- Because this Realm is here, an instance will be shared globally -->
    <!-- This Realm uses the UserDatabase configured in the global JNDI
    resources under the key "UserDatabase". Any edits
    that are performed against this UserDatabase are immediately
    available for use by the Realm. -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
    resourceName="UserDatabase"/>
    <!-- Comment out the old realm but leave here for now in case we
    need to go back quickly -->
    <!--
    <Realm className="org.apache.catalina.realm.MemoryRealm" />
    -->
    <!-- Replace the above Realm with one of the following to get a Realm
    stored in a database and accessed via JDBC -->
    <!--
    <Realm className="org.apache.catalina.realm.JDBCRealm"
    driverName="org.gjt.mm.mysql.Driver"
    connectionURL="jdbc:mysql://localhost/authority"
    connectionName="test" connectionPassword="test"
    userTable="users" userNameCol="user_name" userCredCol="user_pass"
    userRoleTable="user_roles" roleNameCol="role_name" />
    -->
    <!--
    <Realm className="org.apache.catalina.realm.JDBCRealm"
    driverName="oracle.jdbc.driver.OracleDriver"
    connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
    connectionName="scott" connectionPassword="tiger"
    userTable="users" userNameCol="user_name" userCredCol="user_pass"
    userRoleTable="user_roles" roleNameCol="role_name" />
    -->
    <!--
    <Realm className="org.apache.catalina.realm.JDBCRealm"
    driverName="sun.jdbc.odbc.JdbcOdbcDriver"
    connectionURL="jdbc:odbc:CATALINA"
    userTable="users" userNameCol="user_name" userCredCol="user_pass"
    userRoleTable="user_roles" roleNameCol="role_name" />
    -->
    <!-- Define the default virtual host
    Note: XML Schema validation will not work with Xerces 2.2.
    -->
    <Host name="localhost" appBase="webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
    <!-- Defines a cluster for this node,
    By defining this element, means that every manager will be changed.
    So when running a cluster, only make sure that you have webapps in there
    that need to be clustered and remove the other ones.
    A cluster has the following parameters:
    className = the fully qualified name of the cluster class
    name = a descriptive name for your cluster, can be anything
    mcastAddr = the multicast address, has to be the same for all the nodes
    mcastPort = the multicast port, has to be the same for all the nodes
    mcastBindAddr = bind the multicast socket to a specific address
    mcastTTL = the multicast TTL if you want to limit your broadcast
    mcastSoTimeout = the multicast readtimeout
    mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
    mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
    tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
    tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
    in case of multiple ethernet cards.
    auto means that address becomes
    InetAddress.getLocalHost().getHostAddress()
    tcpListenPort = the tcp listen port
    tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
    has a wakup bug in java.nio. Set to 0 for no timeout
    printToScreen = true means that managers will also print to std.out
    expireSessionsOnShutdown = true means that
    useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
    false means to replicate the session after each request.
    false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
    <%
    HashMap map = (HashMap)session.getAttribute("map");
    map.put("key","value");
    %>
    replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
    * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
    * Synchronous means that the thread that executes the request, is also the
    thread the replicates the data to the other nodes, and will not return until all
    nodes have received the information.
    * Asynchronous means that there is a specific 'sender' thread for each cluster node,
    so the request thread will queue the replication request into a "smart" queue,
    and then return to the client.
    The "smart" queue is a queue where when a session is added to the queue, and the same session
    already exists in the queue from a previous request, that session will be replaced
    in the queue instead of replicating two requests. This almost never happens, unless there is a
    large network delay.
    -->
    <!--
    When configuring for clustering, you also add in a valve to catch all the requests
    coming in, at the end of the request, the session may or may not be replicated.
    A session is replicated if and only if all the conditions are met:
    1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
    2. a session exists (has been created)
    3. the request is not trapped by the "filter" attribute
    The filter attribute is to filter out requests that could not modify the session,
    hence we don't replicate the session after the end of this request.
    The filter is negative, ie, anything you put in the filter, you mean to filter out,
    ie, no replication will be done on requests that match one of the filters.
    The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
    filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
    ending with .gif and .js are intercepted.
    The deployer element can be used to deploy apps cluster wide.
    Currently the deployment only deploys/undeploys to working members in the cluster
    so no WARs are copied upons startup of a broken node.
    The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
    When a new war file is added the war gets deployed to the local instance,
    and then deployed to the other instances in the cluster.
    When a war file is deleted from the watchDir the war is undeployed locally
    and cluster wide
    -->
    <!--
    <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
    managerClassName="org.apache.catalina.cluster.session.DeltaManager"
    expireSessionsOnShutdown="false"
    useDirtyFlag="true"
    notifyListenersOnReplication="true">
    <Membership
    className="org.apache.catalina.cluster.mcast.McastService"
    mcastAddr="228.0.0.4"
    mcastPort="45564"
    mcastFrequency="500"
    mcastDropTime="3000"/>
    <Receiver
    className="org.apache.catalina.cluster.tcp.ReplicationListener"
    tcpListenAddress="auto"
    tcpListenPort="4001"
    tcpSelectorTimeout="100"
    tcpThreadCount="6"/>
    <Sender
    className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
    replicationMode="pooled"
    ackTimeout="15000"/>
    <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
    filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
    <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
    tempDir="/tmp/war-temp/"
    deployDir="/tmp/war-deploy/"
    watchDir="/tmp/war-listen/"
    watchEnabled="false"/>
    </Cluster>
    -->
    <!-- Normally, users must authenticate themselves to each web app
    individually. Uncomment the following entry if you would like
    a user to be authenticated the first time they encounter a
    resource protected by a security constraint, and then have that
    user identity maintained across all web applications contained
    in this virtual host. -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->
    <!-- Access log processes all requests for this virtual host. By
    default, log files are created in the "logs" directory relative to
    $CATALINA_HOME. If you wish, you can specify a different
    directory with the "directory" attribute. Specify either a relative
    (to $CATALINA_HOME) or absolute path to the desired directory.
    -->
    <!--
    <Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs" prefix="localhost_access_log." suffix=".txt"
    pattern="common" resolveHosts="false"/>
    -->
    <!-- Access log processes all requests for this virtual host. By
    default, log files are created in the "logs" directory relative to
    $CATALINA_HOME. If you wish, you can specify a different
    directory with the "directory" attribute. Specify either a relative
    (to $CATALINA_HOME) or absolute path to the desired directory.
    This access log implementation is optimized for maximum performance,
    but is hardcoded to support only the "common" and "combined" patterns.
    -->
    <!--
    <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
    directory="logs" prefix="localhost_access_log." suffix=".txt"
    pattern="common" resolveHosts="false"/>
    -->
    <Context path="/tdm" docBase="tdm" debug="0" reloadable="true" />
    </Host>
    </Engine>
    </Service>
    </Server>
    I have set the context path to /tdm in the server.xml file. Should this be placed in context.xml?
    My first page in the project is called Homepage.html. To start my project I give http://localhost:5050/tdm/homepage.html
    in a browser. Here I accept a username and password from the user and then do the validation in
    a valid.jsp file, where I connect to the database and check and use jsp:forward to go to next pages
    accordingly. However when I enter the username and password and click Go in the homepage, nothing is
    displayed on the next page. The URL in the browser says valid.jsp but a blank screen appears.
    WHY DOES IT HAPPEN SO? DOES IT MEAN THAT TOMCAT IS NOT RECOGNIZING JAVA IN MY SYSTEM OR IS IT A PROBLEM
    WITH THE DATABASE CONNECTION OR SOMETHING ELSE? I FEEL THAT TOMCAT IS NOT EXECUTING JSP COMMANDS?
    IS IT POSSIBLE?WHY WILL THIS HAPPEN?
    I set the JAVA_HOME and CATALINA_HOME environment to the jdk and tomcat folders resp.
    Is there any other thing that I need to set in classpath? Should I have my project as a
    WAR file in the webapps of TOMCAT or just a folder i.e. directory structure will fine?

  • Directory structure of web sphere

    i did not get the directory structure of the web sphere 6.1 to deploy a sample application like webapps->dirname->WEB-INF->classes etc in tomcat server.
    The project is developed under tomcat but it has to be convert to the web sphere.

    please google..
    http://www.exforsys.com/tutorials/websphere/websphere-v5.0-workbench-basics-create-j2ee-projects.html
    http://publib.boulder.ibm.com/infocenter/wpfhelp/v6r1m2/index.jsp?topic=/com.bowstreet.designer.doc/designer/c_devenv_dir_structure.htm

  • Can't I change the directory structure?

              Hello Everybody,
              So far everything is working when use the default directory structure,i.e. mydomain/applications/myWebApp/WEB-INF/classes/some package structure.
              But we have application with lot of html files which call servlets like this..myWebApp/WebApp/myServlet.
              In order not to change my html files, I've created this WebApp directory under weblogic directory structure shown above.
              I've done some trial and error in web.xml file to make servlets execute. But 404 error is showing up.
              I tried putting in web.xml like this...
              <servlet>
              <servlet-name>/WebApp/HelloWorldServlet</servlet-name>
              <servlet-class>com.reliable.servlets.HelloWorldServlet</servlet-class>
              </servlet>
              <servlet-mapping>
              <servlet-name>HelloWorldServlet</servlet-name>
              <url-pattern>/WebApp/HelloWorldServlet/*</url-pattern>
              </servlet-mapping>
              I also tried taking out slash(/) before WebApp but no luck.
              Can any one guide how to make this work.
              Thanks so much,
              Sri
              

    What he needs is something like:
              <servlet>
              <servlet-name>HHH</servlet-name>
              <servlet-class>com.reliable.servlets.HelloWorldServlet</servlet-class>
              </servlet>
              <servlet-mapping>
              <servlet-name>HHH</servlet-name>
              <url-pattern>HelloWorldServlet/*</url-pattern>
              </servlet-mapping>
              HHH is simply to link the mapping declaration to the servlet declaration.
              Then the URL would be something like:
              http://myserver:8801/appname/HelloWorldServlet/abc
              If this is the default app, then appname/ drops out.
              There is a good discussion of this in our docs and
              the servlet spec discusses this as well.
              mark
              Keith wrote:
              > Hi Sri and Alfonso,
              > Did you ever get the code? I am interested in seeing how I can do that too. I
              > have to migrate my servlets and jsp from tomcat and all the html files are referencing
              > the servlets with this format:
              > http://abc/servlet/servletA
              >
              > Thanks!
              > keith
              >
              > "sri" <[email protected]> wrote:
              > >
              > >Hi Alfonso,
              > >Thanks for trying to help me. In your response you said "Just copy my code".
              > >But I didn't find any code in your reply.
              > >Can you please clarify.
              > >Thanks so much,
              > >Sri
              > >"alfonso" <[email protected]> wrote:
              > >>
              > >>You are in wrong, the servlet name is a short name to identify the servlet
              > >in xml file not in URL. You can not load many servlet without to register
              > >it,one by one. But i found a solution, that you can find in servlet without
              > >registration subject. (pe: we have servlets calls as http;//b2web/servlet/XXX)
              > >>just copy my code, or email me if you have problems to [email protected]
              > >>
              > >>"sri" <[email protected]> wrote:
              > >>>
              > >>>Hello Everybody,
              > >>>So far everything is working when use the default directory structure,i.e.
              > >mydomain/applications/myWebApp/WEB-INF/classes/some package structure.
              > >>>
              > >>>But we have application with lot of html files which call servlets like
              > >this..myWebApp/WebApp/myServlet.
              > >>>
              > >>>In order not to change my html files, I've created this WebApp directory
              > >under weblogic directory structure shown above.
              > >>>I've done some trial and error in web.xml file to make servlets execute.
              > >But 404 error is showing up.
              > >>>I tried putting in web.xml like this...
              > >>you are in wrong, the servlet name is
              > >>> <servlet>
              > >>> <servlet-name>/WebApp/HelloWorldServlet</servlet-name>
              > >>> <servlet-class>com.reliable.servlets.HelloWorldServlet</servlet-class>
              > >>> </servlet>
              > >>> <servlet-mapping>
              > >>> <servlet-name>HelloWorldServlet</servlet-name>
              > >>> <url-pattern>/WebApp/HelloWorldServlet/*</url-pattern>
              > >>> </servlet-mapping>
              > >>>
              > >>>I also tried taking out slash(/) before WebApp but no luck.
              > >>>
              > >>>Can any one guide how to make this work.
              > >>>
              > >>>Thanks so much,
              > >>>Sri
              > >>
              > >
              

  • Looking for Directory structure

    Hi i am new bie to Tomcat .
    i was wondering if some explain me the directory structure for a web Application.
    like where to put the HTML files and where to put the Java classes and where to keep the JSP
    and what is the Importance of WEB-INF dir
    Thanks in Advance.

    You should create a directory under the webapps and name any name, for example, name it projects and under the projects there should a WEB-INF directory which has a classes directory, under which you keep the .class files, may it be servlets or beans which are used in jsp's. And the normal html, pages from which you call either a servlet or a jsp on clicking a button or something will directly under the projects directory in our example.
    for example a LoginServlet will be in classes directory, the path will be
    C:\progra~1\apache~1.0\webapps\projects\WEB-INF\classes\LoginServlet.java
    and you can access the LoginServlet by giving this url
    http://localhost:8080/projects/servlet/LoginServlet
    hope this helps
    </ksenji>

  • How to not let others see tomcat directory

    I don't want to others see my tomcat's directory in my webapps. in other words, i want to prevent people from knowing my tomcat server directory structure by typing the url "http://202.38.248.1/Basic/"(Basic is a directory in ROOT which contain a lot of JSP pages). How to make it?

    Go to where your default Servlet is defined (probably in Tomcat/conf/web.xml) and add the init parameter:
            <init-param>
                <param-name>listings</param-name>
                <param-value>false</param-value>
            </init-param>to the <servlet>
      <servlet-name>default</servlet-nam>definition.

  • Default Directory for JSP

    Using Eclipse with Tomcat 6.0 Server, I have the following directory structure:
    /Project
    /WebContent
      webpage.jsp
      /PicsI am trying to access files within the Pics directory through the JSP. I figure this should be possible by getting the JSP document's directory and calling the Pics directory from that. However, I can't seem to figure out how to do this. I have tried
    new File(".").getCanonicalPath();but that returns a path to my user directory within the operating system. I feel like this should be really easy, and I feel pretty dumb being unable to figure it out (nor able to find this on Google/SDN), so if somebody could just put me out of my misery with a line or two of code (or even just the call I need to make) I would really appreciate it.
    Thanks!

    ServletContext#getRealPath() returns the absolute path for the given relative web path.
    String absolutePathOfWebRoot = getServletContextSomehow().getRealPath("/");
    String absolutePathOfPicsDirectory = getServletContextSomehow().getRealPath("/Pics");

  • Directory structure for a J2SE+J2EE project: suggestions are very welcome

    Hi, I have to start coding and organizing the CVS tree of an already mature project which is J2SE. This J2SE project can be described as a "core engine" for something else, and is a quite large project, and up to now has only a command line User Interface. I organized the dir structure as this:
    /build.xml
    /src/
    /src/java/<package>/...../*.java
    /src/demo/<package/...../*.java
    /src/test/<package>/....../*.java
    when I ant compile, all the .classes will be done in the "build" directory (reflecting the structure in the "src" dir):
    /build/
    /build/java/<package>/....../*.class
    /build/demo/<package/...../*.class
    /build/test/<package>/..../*.class
    I am happy with this, but now comes the issue: a web interface to use this core engine (it will have the same package namespace) is in developing progess, so I have to put somewhere the *.jsp, the WEB-INF dir with web.xml and servlet sources: how would you do this? And where would you let Ant put the compiled servlet classes?
    I can modify the previous directory structure to accomodate the J2EE part, this is really not a problem!
    Thanks to who can suggest me a clean solution
    Alessio

    Create a web-inf folder at the same level of src and
    jsp folder inside src
    i mean
    /build.xml
    /src/
    /src/java/<package>/...../*.java
    /src/demo/<package/...../*.java
    /src/test/<package>/....../*.java
    /src/jsp
    /web-infSo, would you put in /src/jsp only the *.jsp?
    And what in /WEB-INF ? What woud you put there? Would you do something like:
    /WEB-INF/web.xml
    /WEB-INF/src/<package>/..../<my_servlets_and_j2ee_stuff>.java
    /WEB-INF/classes/<package>/..../<my_servlets_and_j2ee_stuff>.java
    In this manner sources and classes are in the same tree, it does not seem very clean to me, expecially if you consider that probably I must have a "test" directory to unit test some j2ee stuff (as for the j2se stuff in "src"): how would you do that?
    Is this directory structure anyway what you meant or not?
    alessio

  • Directory Structure ?s for an Exploded Web Application

    We have an application that consists only of JSPs and Servlets, no
    EJBs. I am researching whether or not it's worthwhile to start using
    EJBs. We're also migrating from Weblogic 5 to 6.1. I've managed to
    migrate our application fine and have it up and running on WLS 6.1.
    I'm confused about the exploded directory structure, the
    application.xml file, where to put the EJBs and whether or not I have
    to jar them. Here's our current directory structure:
    DefaultWebApp/               JSPs here
    DefaultWebApp/WEB-INF          web.xml and weblogic.xml here
    DefaultWebApp/WEB-INF/classes     Servlets and other classes here
    DefaultWebApp/WEB-INF/lib     do my un-jar-ed EJBs go here?
    I've been reading a lot of BEA's documentation, particularly
    ‘Deploying an Exploded J2EE Application' and a ‘Web Application PDF',
    and looking for relevant threads on the weblogic.developer.interest
    groups. It looks like the application.xml should go in a new
    DefaultWebApp/META-INF directory. But where do the EJBs go?
    I also see some directory structures with another /web directory
    that's confusing me.
    Oh, I've also managed to compile and jar up a trial Stateless Session
    EJB. Then I think I ‘auto-deployed' it into the /applications
    directory, and Weblogic seems to recognize it. But when I tried to
    reference it in a JSP, I got an error message ‘class x is public,
    should be declared in a file named x.java'. I'm assuming this is
    related to the application.xml, where I need to define the ejb
    directory.
    Thanks.

    To deploy your web app together with your EJBs, you need to create
    an "EAR" structure. Both your webapp and your EJB jars will be within
    this new structure, at the same level. You may jar up your EJBs, or you
    may explode their structure, it's up to you.
    The resulting structure should look something like below:
    EnterpriseApp/ <-- new top level
    EnterpriseApp/META-INF/
    EnterpriseApp/META-INF/application.xml
    EnterpriseApp/lib/ <-- shared libraries (if any)
    EnterpriseApp/EJB/ <-- ejbs go here
    EnterpriseApp/EJB/META-INF/ejb-jar.xml
    EnterpriseApp/EJB/META-INF/weblogic-ejb-jar.xml
    EnterpriseApp/EJB/com/your/ejb/classes/here
    EnterpriseApp/WebApp/ <-- move your current app here
    EnterpriseApp/WebApp/index.jsp <-- JSPs goes here
    EnterpriseApp/WebApp/other.jsp
    EnterpriseApp/WebApp/WEB-INF/web.xml
    EnterpriseApp/WebApp/WEB-INF/weblogic.xml
    EnterpriseApp/WebApp/WEB-INF/lib <-- ui libraries go here
    EnterpriseApp/WebApp/WEB-INF/classes <-- servlets go here
    The above structure is identical to the structure to an EAR file, only "exploded"
    as actual files and directories instead of being "jarred" into a single EAR file.
    Your application.xml in this case would specify something like:
    <application>
    <display-name>EnterpriseApp</display-name>
    <description>My Enterprise Application</display-name>
    <module>
    <ejb>EJB</ejb>
    </module>
    <module>
    <web>
    <web-uri>WebApp</web-uri>
    <context-root>/yourAppRoot</context-root>
    </web>
    </module>
    </application>
    And in config.xml you would have an entry similar to:
    <Application Deployed="true" Name="EnterpriseApp"
    Path=".\config\mydomain\applications\EnterpriseApp">
    <WebAppComponent Name="ui" Targets="myserver" URI="WebApp"/>
    <EJBComponent Name="ejb" Targets="myserver" URI="EJB"/>
    </Application>
    regards,
    -Ade

  • Directory structure for the new Data Services Project

    1) I do as prescribed in the manual "Building and deploying
    Flex 2 Applications", page 325
    "To create a web application make a copy of the /flex
    directory and its contents. Rename the copy and store it in the
    same location under /servers/default directory."
    ("flex" is an empty Flex Data Services application that
    serves as a template for creating your custom application)
    2) I create a corresponding project from Flex Builder 2 :
    Project type: Flex Data Services
    Root folder: C:\fds2\jrun4\servers\default\MyDS
    Root URL:
    http://localhost:8700/default/MyDS
    Project name: MyDS
    Project contents: C:\fds2\jrun4\servers\default\MyDS
    2) I build the project
    Immediately after "build project" the directory structure at
    C:\fds2\jrun4\servers\default\MyDS becomes the following:
    .settings
    bin
    ----------------META-INF
    ----------------WEB-INF
    ---------------- --------------- classes
    ---------------- ---------------flex
    --------------------------------jsp
    --------------------------------lib
    -------------------------------sessions
    html-template
    META-INF
    WEB-INF
    ----------------classes
    ----------------flex
    ----------------jsp
    ----------------lib
    ----------------sessions
    Notice that bin directory now contains another pair of
    META-INF and WEB-INF in addition to those already existing in the
    template project "flex".
    Can anybody comment on this directory structure?
    Which META-INF and WEB-INF are supposed to be used for
    configuration?
    What is the purpose of having two pairs of META-INF and
    WEB-INF in the same web app?

    Hello -
    first, those folders are necessary in deployment - You need
    only the contents of the bin folder for deployment, not the
    sources. Since you're compiling the application locally in FB2 it
    places all of the supporting and necessary files into one location
    namely the "bin" folder. You'd deploy the "bin" folder's contents
    to the FDS server, perhaps another FDS server that is not your
    "development" server -- like a production server. The data and
    configuration information that your app needs for FDS services are
    stored in the WEB-INF and META-INF folders so these need to travel
    with the final product. On the production server you'd just cop the
    "bin" folder and it's contents to the /servers/default folder -
    where you could then rename your bin folder to "MyDS"
    HTH, Bill

Maybe you are looking for

  • IPod not functioning

    My iPod Mini has a lock on the left side of the clock and an arrow, on the left side of the lock pointing toward the lock . The last song played remains on the display. The display remains dark and does light up when attached to my computer or plugge

  • WebService Authentication

    Hi All, I created one SOAP Sender adapter in XI using that i am calling an RFC and getting response. But when i tested the webservice, it is asking for userid & password of XI user. How can I avoid this ?? Can I specify uid/pwd somewhere in URL ?? Ho

  • Expert Advice

    I recently received my Oracle Associate's in PL/SQL Development and I have been looking for opportunities as a PL/SQL Developer. I do plan on going for the Professional Certificate very soon. The problem is that a lot of companies are looking for som

  • Sslservice: Exception was: java.lang.NullPointerException

    After having upgraded from 4.30 to 4.40 I get 2008/01/31 20:30:08.324 (pid 3787) server/services/error #1201807808324 Sun Secure Global Desktop Software (4.4) ERROR: Failed to start the service sslservice. Exception was: java.lang.NullPointerExceptio

  • AirPort Extreme drops the 5ghz link

    I have an AirPort Extreme latest version connected to an airport express previous generation through the 5ghz band. When ever I access the shared drive on the AirPort Extreme the 5GZ link shuts out and no devices can be connected to that band. The 2.