Delegated Admin web application only requests first 100 accounts?

Hi,
- Sun Java System Messenger Express 6.2
- Delegated Administrator 6.3-0.09 built Sep 6, 2005
Is this true that the Delegated Admin (DA) web application only requests first 100 accounts?
Once logged in to DA web application, we only see "Retrieved Users (100)" if we want to see all users; but if we do a search on uid or username, all other users are retrieved.
One of the admin gave us the following response:
This is not a directory-related problem, but rather a matter of the design of the DA application you are using. The web-based java app only requests the first 100 accounts from the directory (presented by default as 10 pages of 10 accoints each.) , since you're supposed to be using the search facility to find accounts when you need to modify or delete them.
This is a deliberate design choice by the Sun programmers who wrote the thing, probably because the directory is capable of holding several thousand accounts and pulling them all would take quite a bit of time (not to mention memory space), so in the interest of response-time speed they limited the data pull.
I cannot modify this application's functionality. If you need a list of all user accounts in your domain, I can supply an LDIF on request, with any attributes (mail, uid, cn, etc.) that you like.
Please let us know if there is any way we can view all users (approx. 1000) from DA web application.
Thank you for your time,
GJ

Yes, the terminal commands I gave are changing permissions.
Properly written OS X apps should run under any user account, and should store any account-specific information in the each user's home folder. Some poorly written apps might only be executable by the administrator. Running the first command I have will make the app executable to all users.
Some even more poorly written apps will write user data into the application itself rather than to the user's home folder. This is a particularly bad problem with game software, which for example might write high score info into the app itself. If this is the case for your misbehaving apps, the second command I gave will make the app writable by everybody and should solve the problem.

Similar Messages

  • Error: Accessing the Reader Extensions Server web application for the first time

    Hi,
    I've followed the the installation guide line by line. Everything OK.
    But when i access the Reader Extensions Server web application i see the following error:
    An error has occured
    Error 473: The credential permission settings could not be determined: 'com.adobe.document.pdf.CredentialLoginFailure: IDL:com/adobe/document/pdf/CredentialLoginFailure:1.0'.
    Have you ever faced this kind of message before?
    To tell you the truth i'm not very sure if my Rights Credential file is valid. But is this the cause of this message?
    I use Form Server 6 and Reader Extensions 6 with a Websphere Application Server 6.0
    Thanks in advance

    Hi Stelios,
    Yes, it seems to me also, as a bad certificate issue.
    If memory serves, I run into this message once, where the certificate was valid. Anyway, Websphere v6 is not a supported app server. Have you tried installing on v5.1?
    You might want to read this post, too:
    matt cockburn, "Fix for LiveCycle Reader Extensions 7.0 install error" #, 6 May 2005 8:22 am
    If you are located in Greece, we may be able to help you. You may contact me "ekokkoris at anodos.gr", should you wish.
    Regards,
    Evangelos

  • Exporting Target Group to Spreadsheet only receive first 100 hits

    Hello
    I am having trouble getting the Target Group to display more than 100 hits.  My target will display the Current Size correctly but when I attempt to export that to a spreadsheet I only get 101 maximum.  If the target group is less than a 100 it will display all hits within the target group.
    Please assist.

    Thanks for posting the resolution.
    Regards,
    Anik Roy
    SAP Moderator

  • Aps:button onClick event in Visual web part only fires first time - SharePoint 2013

    Below is my markup from ascx file
    <asp:Button ID="exporttopdf" runat="server" Text="Export To PDF"/>
    C# code for button on click
    protected void Page_Load(object sender, EventArgs e)
    exporttopdf.Click += new System.EventHandler(this.exporttopdf_Click);
    protected void exporttopdf_Click(object sender, EventArgs e)
    if (Page.IsPostBack)
    try
    using (MemoryStream stream = new MemoryStream())
    PdfPCell cell;
    SPList list = SPContext.Current.Site.OpenWeb().Lists[this.ListName];
    BaseColor rGBColor = WebColors.GetRGBColor("#AFAECE");
    PdfPTable element = new PdfPTable(2)
    TotalWidth = 300f,
    LockedWidth = true
    float[] relativeWidths = new float[] { 1f, 2f };
    element.SetWidths(relativeWidths);
    element.HorizontalAlignment = Element.ALIGN_MIDDLE;
    element.SpacingBefore = 20f;
    element.SpacingAfter = 30f;
    if (this.PdfHeading != null)
    cell = new PdfPCell(new Phrase(this.PdfHeading));
    else
    cell = new PdfPCell(new Phrase(this.ListName));
    cell.Colspan = 2;
    cell.Border = 0;
    cell.Padding = 4;
    cell.BackgroundColor = rGBColor;
    cell.HorizontalAlignment = 1;
    element.AddCell(cell);
    Document document = new Document(PageSize.A4, 25f, 25f, 30f, 30f);
    PdfWriter instance = PdfWriter.GetInstance(document, stream);
    document.Open();
    document.AddAuthor("Place Holder");
    document.AddCreator("Place Holder");
    document.AddKeywords("Place Holder");
    document.AddSubject(this.ListName);
    document.AddTitle(this.ListName);
    instance.Info.Put(new PdfName("Producer"), new PdfString("Place Holder"));
    PdfContentByte directContent = instance.DirectContent;
    string[] separator = new string[] { ";", "," };
    string[] strArray2 = this.ViewFields.Split(separator, StringSplitOptions.None);
    new StringBuilder().Append(this.ListName + "\n");
    foreach (string str in strArray2)
    PdfPCell cell2 = new PdfPCell(new Phrase(str))
    Border = 0,
    Padding = 4,
    HorizontalAlignment = 1
    element.AddCell(cell2);
    if (str != "Modified By" && str != "Created By")
    PdfPCell cell3 = new PdfPCell(new Phrase(SPContext.Current.Item[str].ToString()))
    Border = 0,
    Padding = 4,
    HorizontalAlignment = 1
    element.AddCell(cell3);
    else
    string[] separatorc = new string[] { "," };
    string[] strArray3 = SPContext.Current.Item[str].ToString().Split(separatorc, StringSplitOptions.None);
    PdfPCell cell3 = new PdfPCell(new Phrase(strArray3[3].ToString().Substring(8).Replace(@"\\", @"\")))
    Border = 0,
    Padding = 4,
    HorizontalAlignment = 1
    element.AddCell(cell3);
    PdfPCell cell4 = new PdfPCell(new Phrase("Footer"))
    Colspan = 2,
    Border = 0,
    Padding = 4,
    BackgroundColor = rGBColor,
    HorizontalAlignment = 1
    element.AddCell(cell4);
    document.Add(element);
    document.Close();
    instance.Close();
    stream.Close();
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.ContentType = "pdf/application";
    string filename = SPContext.Current.Item["Title"].ToString() + ".pdf";
    HttpContext.Current.Response.AddHeader("content-disposition", "inline;filename=" + filename);
    HttpContext.Current.Response.OutputStream.Write(stream.GetBuffer(), 0, stream.GetBuffer().Length);
    HttpContext.Current.Response.End();
    catch (Exception exception)
    SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Export To PDF", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, exception.Message, new object[] { exception.StackTrace });
    else
    HttpContext.Current.Response.Write("<script language=javascript>alert('ERROR');</script>");
    it works fine first time but does not do anything from second.
    any advice?

    Hi,
    Please try to the code snippet as below:
    VisualWebPart1.ascx:
    <asp:Button ID="exporttopdf" runat="server" Text="Export To PDF" OnClick="exporttopdf_Click"/>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    VisualWebPart1.ascx.cs:
    protected void Page_Load(object sender, EventArgs e)
    protected void exporttopdf_Click(object sender, EventArgs e)
    Label1.Text = System.DateTime.Now.ToString();
    If the code still do not work from second, I suggest you debug your code and check whick line of code occur the error.
    More information:
    http://social.msdn.microsoft.com/Forums/office/en-US/94931a08-f204-4d30-a230-f468815a76e8/export-aspnet-gridview-to-pdf-from-visual-webpart?forum=sharepointdevelopmentprevious
    Thanks,
    Dennis Guo
    TechNet Community Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Dennis Guo
    TechNet Community Support

  • Create a new web application, how shall I update the file server.xml

    Hi,
    I will create a new web application, i.e named newApp. Then I create a file structure as follows:
    - <server-root>/newApp
    - <server-root>/newApp/WEB-INF
    - <server-root>/newApp/WEB-INF/classes
    Then I must tell the server that I have created a new web application. Then I must update my file server.xml, How shall I do this and where in the file shall I type in the new information?
    I use windows XP Pro, and Tomcat 4.1.27.
    My server.xml file looks like below:
    <!-- 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" debug="0">
    <!-- Comment these entries out to disable JMX MBeans support -->
    <!-- You may also configure custom components (e.g. Valves/Realms) by
    including your own mbean-descriptor file(s), and setting the
    "descriptors" attribute to point to a ';' seperated list of paths
    (in the ClassLoader sense) of files to add to the default list.
    e.g. descriptors="/com/myfirm/mypackage/mbean-descriptor.xml"
    -->
    <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
    debug="0"/>
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
    debug="0"/>
    <!-- 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">
    </Resource>
    <ResourceParams name="UserDatabase">
    <parameter>
    <name>factory</name>
    <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
    </parameter>
    <parameter>
    <name>pathname</name>
    <value>conf/tomcat-users.xml</value>
    </parameter>
    </ResourceParams>
    </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="Tomcat-Standalone">
    <!-- 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 4.0 documentation bundle for more detailed
    instructions):
    * 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 Coyote HTTP/1.1 Connector on port 8080 -->
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8080" minProcessors="5" maxProcessors="75"
    enableLookups="true" redirectPort="8443"
    acceptCount="100" debug="0" connectionTimeout="20000"
    useURIValidationHack="false" disableUploadTimeout="true" />
    <!-- Note : To disable connection timeouts, set connectionTimeout value
    to -1 -->
    <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <!--
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8443" minProcessors="5" maxProcessors="75"
    enableLookups="true"
    acceptCount="100" debug="0" scheme="https" secure="true"
    useURIValidationHack="false" disableUploadTimeout="true">
    <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
    clientAuth="false" protocol="TLS" />
    </Connector>
    -->
    <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8009" minProcessors="5" maxProcessors="75"
    enableLookups="true" redirectPort="8443"
    acceptCount="10" debug="0" connectionTimeout="0"
    useURIValidationHack="false"
    protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <!--
    <Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
    port="8009" minProcessors="5" maxProcessors="75"
    acceptCount="10" debug="0"/>
    -->
    <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
    <!-- See proxy documentation for more information about using this. -->
    <!--
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8082" minProcessors="5" maxProcessors="75"
    enableLookups="true"
    acceptCount="100" debug="0" connectionTimeout="20000"
    proxyPort="80" useURIValidationHack="false"
    disableUploadTimeout="true" />
    -->
    <!-- Define a non-SSL legacy HTTP/1.1 Test Connector on port 8083 -->
    <!--
    <Connector className="org.apache.catalina.connector.http.HttpConnector"
    port="8083" minProcessors="5" maxProcessors="75"
    enableLookups="true" redirectPort="8443"
    acceptCount="10" debug="0" />
    -->
    <!-- Define a non-SSL HTTP/1.0 Test Connector on port 8084 -->
    <!--
    <Connector className="org.apache.catalina.connector.http10.HttpConnector"
    port="8084" minProcessors="5" maxProcessors="75"
    enableLookups="true" redirectPort="8443"
    acceptCount="10" debug="0" />
    -->
    <!-- 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 JK/JK2 ie :
    <Engine name="Standalone" defaultHost="localhost" debug="0" jmvRoute="jvm1">
    -->
    <!-- Define the top level container in our container hierarchy -->
    <Engine name="Standalone" defaultHost="localhost" debug="0">
    <!-- 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.3
    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"/>
    -->
    <!-- Global logger unless overridden at lower levels -->
    <Logger className="org.apache.catalina.logger.FileLogger"
    prefix="catalina_log." suffix=".txt"
    timestamp="true"/>
    <!-- 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"
    debug="0" 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" debug="99"
    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" debug="99"
    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" debug="99"
    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 -->
    <Host name="localhost" debug="0" appBase="webapps"
    unpackWARs="true" autoDeploy="true">
    <!-- 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"
    debug="0"/>
    -->
    <!-- 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"/>
    -->
    <!-- Logger shared by all Contexts related to this virtual host. By
    default (when using FileLogger), 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.-->
    <Logger className="org.apache.catalina.logger.FileLogger"
    directory="logs" prefix="localhost_log." suffix=".txt"
    timestamp="true"/>
    <!-- Define properties for each web application. This is only needed
    if you want to set non-default properties, or have web application
    document roots in places other than the virtual host's appBase
    directory. -->
         <DefaultContext reloadable="true"/>
    <!-- Tomcat Root Context -->
    <Context path="" docBase="ROOT" debug="0"/>
    <!-- Tomcat Examples Context -->
    <Context path="/examples" docBase="examples" debug="0"
    reloadable="true" crossContext="true">
    <Logger className="org.apache.catalina.logger.FileLogger"
    prefix="localhost_examples_log." suffix=".txt"
    timestamp="true"/>
    <Ejb name="ejb/EmplRecord" type="Entity"
    home="com.wombat.empl.EmployeeRecordHome"
    remote="com.wombat.empl.EmployeeRecord"/>
    <!-- If you wanted the examples app to be able to edit the
    user database, you would uncomment the following entry.
    Of course, you would want to enable security on the
    application as well, so this is not done by default!
    The database object could be accessed like this:
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    UserDatabase database =
    (UserDatabase) envCtx.lookup("userDatabase");
    -->
    <!--
    <ResourceLink name="userDatabase" global="UserDatabase"
    type="org.apache.catalina.UserDatabase"/>
    -->
    <!-- PersistentManager: Uncomment the section below to test Persistent
    Sessions.
    saveOnRestart: If true, all active sessions will be saved
    to the Store when Catalina is shutdown, regardless of
    other settings. All Sessions found in the Store will be
    loaded on startup. Sessions past their expiration are
    ignored in both cases.
    maxActiveSessions: If 0 or greater, having too many active
    sessions will result in some being swapped out. minIdleSwap
    limits this. -1 or 0 means unlimited sessions are allowed.
    If it is not possible to swap sessions new sessions will
    be rejected.
    This avoids thrashing when the site is highly active.
    minIdleSwap: Sessions must be idle for at least this long
    (in seconds) before they will be swapped out due to
    activity.
    0 means sessions will almost always be swapped out after
    use - this will be noticeably slow for your users.
    maxIdleSwap: Sessions will be swapped out if idle for this
    long (in seconds). If minIdleSwap is higher, then it will
    override this. This isn't exact: it is checked periodically.
    -1 means sessions won't be swapped out for this reason,
    although they may be swapped out for maxActiveSessions.
    If set to >= 0, guarantees that all sessions found in the
    Store will be loaded on startup.
    maxIdleBackup: Sessions will be backed up (saved to the Store,
    but left in active memory) if idle for this long (in seconds),
    and all sessions found in the Store will be loaded on startup.
    If set to -1 sessions will not be backed up, 0 means they
    should be backed up shortly after being used.
    To clear sessions from the Store, set maxActiveSessions, maxIdleSwap,
    and minIdleBackup all to -1, saveOnRestart to false, then restart
    Catalina.
    -->
    <!--
    <Manager className="org.apache.catalina.session.PersistentManager"
    debug="0"
    saveOnRestart="true"
    maxActiveSessions="-1"
    minIdleSwap="-1"
    maxIdleSwap="-1"
    maxIdleBackup="-1">
    <Store className="org.apache.catalina.session.FileStore"/>
    </Manager>
    -->
    <Environment name="maxExemptions" type="java.lang.Integer"
    value="15"/>
    <Parameter name="context.param.name" value="context.param.value"
    override="false"/>
    <Resource name="jdbc/EmployeeAppDb" auth="SERVLET"
    type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/EmployeeAppDb">
    <parameter><name>username</name><value>sa</value></parameter>
    <parameter><name>password</name><value></value></parameter>
    <parameter><name>driverClassName</name>
    <value>org.hsql.jdbcDriver</value></parameter>
    <parameter><name>url</name>
    <value>jdbc:HypersonicSQL:database</value></parameter>
    </ResourceParams>
    <Resource name="mail/Session" auth="Container"
    type="javax.mail.Session"/>
    <ResourceParams name="mail/Session">
    <parameter>
    <name>mail.smtp.host</name>
    <value>localhost</value>
    </parameter>
    </ResourceParams>
    <ResourceLink name="linkToGlobalResource"
    global="simpleValue"
    type="java.lang.Integer"/>
    </Context>
    </Host>
    </Engine>
    </Service>
    </Server>

    To use servlets u have indeed to update your web.xml...Well I'm not sure this is relevant to your case anyway.
    You have to add a <servlet> element to this file.
    Something like this:
    <servlet>
    <servlet-name>blabla</servlet-name>
    <servlet-class>blablapackage.Blablaclass</servlet-class>
    <init-param>...</init-param>
    </servlet>
    Now this may not solve your problem. Make sure you refer to your servlets using their full qualified names.btw, just to be sure, what is your definition of "servlet"? (i mean: any java class or only javax.servlet.Servlet)

  • 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?

  • Error in creating web application through power shell

    hi,
     i have taken the  ps script from the  below url :
    credits to Roger  :
    http://blogs.msdn.com/b/rcormier/archive/2012/09/01/how-to-create-sharepoint-web-applications-with-powershell.aspx
    http://gallery.technet.microsoft.com/Create-SharePoint-Web-742a8fb9
    But when i am running the script, i am getting many errors:
    Note: i am not using appln pool account password [as i dont know the password]
    want to know whether  this paramter is necessary.
    $ver = $host | select version
    if($Ver.version.major -gt 1) {$Host.Runspace.ThreadOptions = "ReuseThread"}
    if(!(Get-PSSnapin Microsoft.SharePoint.PowerShell -ea 0))
    Write-Progress -Activity "Loading Modules" -Status "Loading Microsoft.SharePoint.PowerShell"
    Add-PSSnapin Microsoft.SharePoint.PowerShell
    Write-Progress -Activity "Creating Web Application" -Status "Setting Variables"
    #Set Individual Web App Variables
    #This is the Web Application URL
    $WebApplicationURL = "http://mysrvr:2020/"
    #This is the Display Name for the SharePoint Web Application
    $WebApplicationName = "myweb1"
    #This is the Content Database for the Web Application
    $ContentDatabase = "myContentDB"
    #Set Common Variables
    #This is the Display Name for the Application Pool
    $ApplicationPoolDisplayName = "mapppool2020"
    #This is identity of the Application Pool which will be used (Domain\User)
    $ApplicationPoolIdentity = "mydomain\myidd"
    #This is the password of the Appliation Pool account which will be used
    #$ApplicationPoolPassword = "Pass@word1"
    #This is the Account which will be used for the Portal Super Reader Account
    $PortalSuperReader = "i:0#.w|in\hariharan.venugopalk"
    #This is the Account which will be used for the Portal Super User Account
    $PortalSuperUser = "i:0#.w|in\spinstall.dev"
    Write-Progress -Activity "Creating Web Application" -Status "Loading Functions"
    #Create Functions
    Function CreateClaimsWebApp($WebApplicationName, $WebApplicationURL, $ContentDatabase, $HTTPPort)
        #AppPoolUsed is set when calling the ValidateAppPool function. This will be true if the application pool is already running SharePoint web appplications
        #If the application pool is already being used in web applications, the syntax for New-SPWebApplication changes
        if($AppPoolUsed -eq $True)
            #Create the web application, assign it to the WebApp variable.  The WebApp variable will be used to set object cache user accounts
            Write-Progress -Activity "Creating Web Application" -Status "Using Application Pool With Existing Web Applications"
            Set-Variable -Name WebApp -Value (New-SPWebApplication -ApplicationPool $ApplicationPoolDisplayName -Name $WebApplicationName -url $WebApplicationURL -port $HTTPPort -DatabaseName $ContentDatabase -HostHeader $hostHeader
    -AuthenticationProvider (New-SPAuthenticationProvider)) -Scope Script
            #Call the SetObjectCache function, which sets the object cache.
            Write-Progress -Activity "Creating Web Application" -Status "Configuring Object Cache Accounts"
            SetObjectCache
        else
            #Create the web application, assign it to the WebApp variable.  The WebApp variable will be used to set object cache user accounts
            Write-Progress -Activity "Creating Web Application" -Status "Using Application Pool With No Existing Web Applications"
            Set-Variable -Name WebApp -Value (New-SPWebApplication -ApplicationPool $ApplicationPoolDisplayName -ApplicationPoolAccount $AppPoolManagedAccount.Username -Name $WebApplicationName -url $WebApplicationURL -port $HTTPPort
    -DatabaseName $ContentDatabase -HostHeader $hostHeader -AuthenticationProvider (New-SPAuthenticationProvider)) -Scope Script
            #Call the SetObjectCache function, which sets the object cache.
            Write-Progress -Activity "Creating Web Application" -Status "Configuring Object Cache Accounts"
            SetObjectCache
    Function ValidateURL($WebApplicationURL)
        #Find out if a web application with the target URL exists
        if(get-spwebapplication $WebApplicationURL -ErrorAction SilentlyContinue)
            #If a web application with the specifid URL already exists, wait 5 seconds and exit
            Write-Progress -Activity "Creating Web Application" -Status "Aborting Process Due To URL Conflict"
            Write-Host "Aborting: Web Application $WebApplicationURL Already Exists" -ForegroundColor Red
            sleep 5
            #Setting the CriticalError value to $True results in the script to not create anything
            Set-Variable -Name CriticalError -Value $True
        #If the WebApplicationURL passed is not already a SharePoint web application, find out if it starts with HTTP or HTTPS
        elseif($WebApplicationURL.StartsWith("http://"))
                #If the string starts with http://, and not https://, trim the protocol from the URL.  Set the host as the host header
                Set-Variable HostHeader -Value ($WebApplicationURL.Substring(7)) -Scope Script
                #If we're using HTTP, use port 80
                Set-Variable -Name HTTPPort -Value "80" -Scope Script
            elseif($WebApplicationURL.StartsWith("https://"))
                #If the string starts with https://, and not http://, trim the protocol from the URL.  Set the host as the host header
                Set-Variable HostHeader -Value ($WebApplicationURL.Substring(8)) -Scope Script
                #If we're using HTTPS, use port 443
                Set-Variable -Name HTTPPort -Value "443" -Scope Script
    Function ValidateAppPool($AppPoolName, $WebApplicationURL)
        #Change the ErrorActionPreference to SilentlyContinue while preserving the original value in a temporary variable
        #Failing to do this will result in error messages being displayed if Get-WebAppPoolState does not return an object.  The script would still continue
        $CurrentErrorActionPreference = $ErrorActionPreference
        $ErrorActionPreference = "SilentlyContinue"
        #Check to see if an application pool with the name passed by the AppPoolName variable already exists, assign this to a variable.
        #This variable will be used in order to determine if the application pool exists, but is not part of SharePoint
        $TestAppPool = Get-WebAppPoolState $AppPoolName
        #If we have a SharePoint application pool with the value passed by the AppPoolName variable, find out if there are any sites using that app pool
        #This changes the syntax used with New-SPWebApplication
        if(Get-SPServiceApplicationPool $AppPoolName)
            #Return all application pools used by all web applications
            $AppPools = Get-SPWebApplication | select ApplicationPool
            #Providing there is more than one application pool, find out what their names are
            if($AppPools)
                foreach($Pool in $AppPools)
                    #Get The application pool display name for each application pool returned
                    [Array]$Poolchild = $Poolchild += ($Pool.ApplicationPool.DisplayName)
                    #If any application pool matches the value passed by ApplicationPoolDisplayName, set AppPoolUsed to True
                    #This is referenced in the CreateClaimsWebApp function
                    if($Poolchild.Contains($ApplicationPoolDisplayName))
                        Set-Variable -Name AppPoolUsed -Value $True -Scope Script
                    #If the application pool display name does not match the value passed by ApplicationPoolDisplayName, set AppPoolUsed to False
                    #This is referenced in the CreateClaimsWebApp function
                    else
                        Set-Variable -Name AppPoolUsed -Value $False -Scope Script
            #Since this is a SharePoint Application Pool, set the AppPool value to the the SPServiceApplicationPool object returned
            Set-Variable -Name AppPool -Value (Get-SPServiceApplicationPool $AppPoolName) -scope Script
            #Set the AppPoolManagedAccount variable to the name of the managed acount used by the application pool returned
            #AppPoolManagedAccount is used in the CreateClaimsWebApp function if the application pool does not have existing web applications that are using it
            Set-Variable -Name AppPoolManagedAccount -Value (Get-SPManagedAccount | ? {$_.username -eq ($AppPool.ProcessAccountName)}) -scope Script
        #Check to see if the application pool is in IIS, but is not a SharePoint app pool
        elseif($TestAppPool)
            #If the application pool exists in IIS and is not a SharePoint application pool, abort the script by setting CriticalError to True
            Write-Host "Aborting: Application Pool $AppPoolName already exists on the server and is not a SharePoint Application Pool `n`rWeb Application `"$WebApplicationURL`" will not be created" -ForegroundColor
    Red
            Set-Variable -Name CriticalError -Value $True
        #If it's not a SharePoint app pool, and it doesn't exist in IIS, we have to create one
        elseif(!($TestAppPool))
            #Find out if a managed account exists by calling the ValidateManagedAccount function
            validateManagedAccount $ApplicationPoolIdentity
            #If the managed account exists, create an application pool using the existing managed account
            if($ManagedAccountExists -eq $True)
                #Set the AppPoolManagedAccount to the identity of the managed acocunt referenced by the ApplicationPoolIdentity variable
                Write-Host "Creating New App Pool using Existing Managed Account"
                Set-Variable -Name AppPoolManagedAccount -Value (Get-SPManagedAccount $ApplicationPoolIdentity | select username) -scope "Script"
                #Create a new SPServiceApplicationPool, assign that to the AppPool variable
                Set-Variable -Name AppPool -Value (New-SPServiceApplicationPool -Name $ApplicationPoolDisplayName -Account $ApplicationPoolIdentity) -scope "Script"
            #If there is no managed account matching the account referenced by the ApplicationPoolIdentity, create it
            else
                #Use the ApplicationPoolIdentity and ApplicationPoolPassword to create a credential object
                #This is necessary when creating a new managed account
                Write-Host "Creating New Managed Account And App Pool"
                $AppPoolCredentials = New-Object System.Management.Automation.PSCredential $ApplicationPoolIdentity, (ConvertTo-SecureString $ApplicationPoolPassword -AsPlainText -Force)
                #Create a new managed account, assign that to the AppPoolManagedAccount variable
                Set-Variable -Name AppPoolManagedAccount -Value (New-SPManagedAccount -Credential $AppPoolCredentials) -scope "Script"
                #Create a new application pool using the new managed account, assign this to the AppPool variable
                Set-Variable -Name AppPool -Value (New-SPServiceApplicationPool -Name $ApplicationPoolDisplayName -Account (get-spmanagedaccount $ApplicationPoolIdentity)) -scope "Script"
        #Return the ErrorActionPreference to the default value
        $ErrorActionPreference = $CurrentErrorActionPreference
    Function ValidateManagedAccount($ApplicationPoolIdentity)
        #Find out if the manage account referenced by the AppPoolIdentity already exists
        #If it does, set ManagedAccountExists to True
        if(Get-SPManagedAccount $ApplicationPoolIdentity -ErrorAction SilentlyContinue)
            Set-Variable -Name ManagedAccountExists -Value $True -Scope Script
        #If it does not, set ManagedAccountExists to False
        else
            Set-Variable -Name ManagedAccountExists -Value $False -Scope Script
    Function ClearScriptVariables
        #Set the ErrorActionPreference to SilentlyContinue
        #If this is not set, and the script variables referenced have not been set, an error message will be returned.  The script would still continue
        $CurrentErrorActionPreference = $ErrorActionPreference
        $ErrorActionPreference = "SilentlyContinue"
        #Remove the CriticalError variable
        Remove-Variable $CriticalError -ErrorAction SilentlyContinue
        $ErrorActionPreference = $CurrentErrorActionPreference
    Function SetObjectCache
        #Set object cache user account properties based on the value of the parameters supplied
        $WebApp.Properties["portalsuperuseraccount"] = $PortalSuperUser
        $WebApp.Properties["portalsuperreaderaccount"] = $PortalSuperReader
        #Create a New Policy for the Super User
        $SuperUserPolicy = $WebApp.Policies.Add($PortalSuperUser, "Portal Super User Account")
        #Assign Full Control To the Super User
        $SuperUserPolicy.PolicyRoleBindings.Add($WebApp.PolicyRoles.GetSpecialRole([Microsoft.SharePoint.Administration.SPPolicyRoleType]::FullControl))
        #Create a New Policy for the Super Reader
        $SuperReaderPolicy = $WebApp.Policies.Add($PortalSuperReader, "Portal Super Reader Account")
        #Assign Full Read to the Super Reader
        $SuperReaderPolicy.PolicyRoleBindings.Add($WebApp.PolicyRoles.GetSpecialRole([Microsoft.SharePoint.Administration.SPPolicyRoleType]::FullRead))
        #Commit these changes to the web application
        $WebApp.Update()
    #Script
    #Call the ClearScriptVariables function to empty out varialbes that should be blank when the script executes.
    ClearScriptVariables
    #Validate the URL passed by calling the ValidateURL function
    Write-Progress -Activity "Creating Web Application" -Status "Validating Web Application URL Variables"
    ValidateURL $WebApplicationURL
    #Validate the application pool variables by calling the ValidateAppPool function
    Write-Progress -Activity "Creating Web Application" -Status "Validating Application Pool Variables"
    ValidateAppPool $ApplicationPoolDisplayName $WebApplicationURL
    #As long as CriticalError has not been set, create the web application using the variables passed.
    if(!($CriticalError))
    Write-Progress -Activity "Creating Web Application" -Status "Creating Claims-Based Web Application"
    CreateClaimsWebApp $WebApplicationName $WebApplicationURL $ContentDatabase $HTTPPort
    error  is thrown below:
    deployment
    S D:\myworkspace\bif> iisreset
    ttempting stop...
    nternet services successfully stopped
    ttempting start...
    nternet services successfully restarted
    S D:\myworkspace\bif> .\CreateSP2013ClaimsWebApplication.ps1
    reating New Managed Account And App Pool
    ew-SPWebApplication : "mysrvr:2020/" contains invalid character ':'.
    t D:\myworkspace\bif\CreateSP2013ClaimsWebApplication.ps1:68 char:43
             Set-Variable -Name WebApp -Value (New-SPWebApplication
    ApplicationPool  ...
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~
       + CategoryInfo         
    : InvalidData: (Microsoft.Share...PWebApplication:
      SPCmdletNewSPWebApplication) [New-SPWebApplication], ArgumentException
       + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletNewSPWeb
      Application
    annot index into a null array.
    t D:\myworkspace\bif\CreateSP2013ClaimsWebApplication.ps1:235 char:5
         $WebApp.Properties["portalsuperuseraccount"] = $PortalSuperUser
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       + CategoryInfo         
    : InvalidOperation: (:) [], RuntimeException
       + FullyQualifiedErrorId : NullArray
    cannot index into a null array.
    t D:\myworkspace\bif\CreateSP2013ClaimsWebApplication.ps1:236 char:5
         $WebApp.Properties["portalsuperreaderaccount"] = $PortalSuperReader
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       + CategoryInfo         
    : InvalidOperation: (:) [], RuntimeException
       + FullyQualifiedErrorId : NullArray
    ou cannot call a method on a null-valued expression.
    t D:\myworkspace\bif\CreateSP2013ClaimsWebApplication.ps1:239 char:5
         $SuperUserPolicy = $WebApp.Policies.Add($PortalSuperUser, "Portal Super
    ser ...
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~
       + CategoryInfo         
    : InvalidOperation: (:) [], RuntimeException
       + FullyQualifiedErrorId : InvokeMethodOnNull
    ou cannot call a method on a null-valued expression.
    t D:\myworkspace\bif\CreateSP2013ClaimsWebApplication.ps1:242 char:5
    SuperUserPolicy.PolicyRoleBindings.Add($WebApp.PolicyRoles.GetSpecialRole([
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~
       + CategoryInfo         
    : InvalidOperation: (:) [], RuntimeException
       + FullyQualifiedErrorId : InvokeMethodOnNull
    ou cannot call a method on a null-valued expression.
    t D:\myworkspace\bif\CreateSP2013ClaimsWebApplication.ps1:245 char:5
         $SuperReaderPolicy = $WebApp.Policies.Add($PortalSuperReader, "Portal
    uper  ...
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~
       + CategoryInfo         
    : InvalidOperation: (:) [], RuntimeException
       + FullyQualifiedErrorId : InvokeMethodOnNull
    ou cannot call a method on a null-valued expression.
    t D:\myworkspace\bif\CreateSP2013ClaimsWebApplication.ps1:248 char:5
    SuperReaderPolicy.PolicyRoleBindings.Add($WebApp.PolicyRoles.GetSpecialRole
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~
       + CategoryInfo         
    : InvalidOperation: (:) [], RuntimeException
       + FullyQualifiedErrorId : InvokeMethodOnNull
    ou cannot call a method on a null-valued expression.
    t D:\myworkspace\bif\CreateSP2013ClaimsWebApplication.ps1:251 char:5
         $WebApp.Update()
         ~~~~~~~~~~~~~~~~
       + CategoryInfo         
    : InvalidOperation: (:) [], RuntimeException
       + FullyQualifiedErrorId : InvokeMethodOnNull

    Hi Benjamin,
    If you're getting a Null Value error anywhere, that means a variable you're referencing isn't set to anything. If you're getting that try echoing out each variable after it's assigned to see if it's set to anything.
    The link you are referring is for SharePoint 2010 and verified on Windows Server 2008 R2 and 2008, but not Windows Server 2012.
    The approach in this case includes the following per the blog:
    Check to see if a web application with the current specified URL is already in use – exit if it is
    Check to see if an application pool with the name already exists. If so use it, otherwise create one
    Create a web application based on the parameters specified
    Assign the object cache properties to the new web application
    Create policies for the object cache users to the web application
    To simplified the code, we could use powershell below to check if web application and application pool have been already in use ahead. And skip the last two steps in the first time.
    Get-SPWebApplication | fl displayname, applicationpool
    Please refer to New-SPWebApplication
    which is used to create a new web application within the local farm:
    http://technet.microsoft.com/en-us/library/ff607931(v=office.15).aspx. Only two parameters i.e. ApplicationPool and Name are required, we could try a simple command at first:
    Please run Get-SPManagedAccount to check the managed account, then execute the command below:
    $ap = New-SPAuthenticationProvider
    New-SPWebApplication -Name "Contoso Internet Site" -Port 2014 -ApplicationPool "ContosoAppPool" -ApplicationPoolAccount (Get-SPManagedAccount "Domain\Administrator")
     -AuthenticationProvider $ap -SecureSocketsLayer
    Regards,
    Rebecca Tu
    TechNet Community Support

  • From schema 1 to schema 2 migration delegated admin problem

    I want migrate from schema 1 to schema 2 the messaging server 6.2 ( jes 2005q1).
    I have install access manager and delegated admin.
    With the commdirmig I migrate the domain and schema , the messaging work correctly.
    I have a problem with the delegated admin web interface.
    The delegated don't view my domain. If I add the sundelegatedorganization objectclass I can view my domain on delegated admin but I can view user and group.
    Any Idea?
    TIA
    Bye Giovanni

    There are two very different products called "deletaged admin". The old iPlanet Delegated Admin (iDA) only works with Schema 1. The current Delegated Admin, that comes with JES3 only works with Schema 2.
    If you're using the old iDA that worked with schema 1, it won't work with schema 2. You have to install the new DA for that.
    It doesn't work with groups/lists, only with users and domains.

  • The first 100 Chars in Struts

    Hi I am a novice struts user and I need HELP!
    I have a string Description in a vector with I then throw at the JSP. Here I am using c:out stuff to get it to print...BUT I need only the first 100 chars or so following by elipses...I know that there is a scriplet for a string but I can't figure out the command for a struts.
    Here is my code:
    <%@ page language='java'%>
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
    <html>
    <head>
    <title>Search Results</title>
    </head>
    <b> Results:</b><br><br>
    <c:forEach var="record" items="${SearchProgram}">
    <b> <c:out value="${record.acronym}"/> </b><br>
    <a HREF="https://enweb.mitre.org/program.do?programId=<c:out value=${record.programId "/>"><c:out value="${record.longName}"/><br>
    <a HREF="https://enweb.mitre.org/spo.do?spoPadId=<c:out value=${record.spoPadId"/>"> Mother SPO Homepage<br>
    <c:out value="${record.description}"/><br><br> <!-- THIS IS WHERE I PRINT DESCRIPTION-->
    </c:forEach>
    </html>

    No easy way to do this in JSTL/JSP code.
    Obviously you could use scriptlets record.getDescription().substring(0, 100)
    The better solution would be to populate the description (or maybe a short description?) field with the shortened value.
    ie add a method to your bean getShortDescription which gets the value you want.

  • Appserver dies (Delegated Admin)

    Hi,
    Running an instance of the Messaging Q12005. No additional patches installed after installation. The problem we are facing is that periodically (once or more a day) the Delegated Admin web access is not reachable. It seems that the App. Server process dies because when I try to stop the App server using asadmin , it replies that it is not running, so after restarting the App server and the Access Manager admin server also restarted, the Delegated Admin Web access works again.
    Any idea why this is hapenning ?

    Alas, I don't know much about troubleshooting App Server. Last time I even looked at it, I vaguely remember that it should be restarting itself.
    I use the web server, as a container for DA,and have no such issues.
    Does App Server dump core? Are you configured so it can? Have you opened a tech support case for this?

  • Print PDF in Web application Designer(7.0).

    Dear All,
    The entire web application as displayed on the screen
    For Example:
    If two web items are "side-by-side" on the web application, then the first web item is printed to PDF and the second web item is  appear underneath first web item in  PDF.
    Please suggest how to disply the two web items side-by -side in print PDF.
    Regards,
    Ganesh

    Hi Ganesh,
    this is not possible because not all elements of WAD are printable. This topic has been disussed quite often over here, this post will probably help you:
    Re: Unable to Print the whole Container which has other Web items in WAD
    As mentioned in the above mentioned thread there is a more detailled explanation over here:
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/43/68ce8391886e47e10000000a422035/content.htm
    If there are questions please let us know.
    Brgds,
    Marcel

  • Full craw issue with specific web application

    We are using SharePoint 2013 Enterprise (15.0.4569.1000). We have public facing (publishing site) with anonymous access enabled on it. While crawling this site we are using default Content Source called "Local SharePoint sites" where we have following
    settings.
    Start Addresses - http://SP2013APPSRV
    Crawl Settings - Crawl everything under the hostname for each start address
    Crawl Schedules - Enable Incremental Crawls
    With this configuration we try to perform Full Crawl of this content source. the status of this content source goes to "Starting" then to "Crawling Full" and after some time then to "Idle" state. The overall crawl duration never
    goes beyond 3-4 minutes. With this if we check the "Crawl Log" screen then except for "Successes" = 1 every other column shows 0 even the "Errors" or "Top Level Errors" column shows no record. Getting into the Success
    items we found that the crawling was only done for the single item which is nothing but the start address that was specified into the content source settings (http://sp2013appsrv). Because of this it seems the crawling is not working correctly to pull all
    the sub contents of the given host URl, instead it only pulls the top level link. There is nothing helpful in Verbose - ULS logs or event viewer either. 
    With further analysis of this we found that this issue only exists with single web application only. Because adding another web application URL into the same Content Source does crawls all the contents properly of that web application but still shows single
    index item for problematic web application. 
    Could someone please help us with this issue ?

    Hi Ajay,
    Based on your description, you have some problems in doing full crawl of a specify web application.
    1.  Check if the crawl account has 'full read' access to affected web application.
    2. Check if allow this site to appear in search results in the search and offline availability in the site setting.
    3. Check if you have
    opened the urlMappings in SharePoint that will hinder the search function crawls. If you add the code as below into the web.config to open the
    urlMappings, it will not crawl the web application.
    <urlMappings
    enabled="true">
      <clear
    />
      <add
    url="~/Home.aspx"
    mappedUrl="~/Default.aspx?tab=home"
    />
      <remove
    url="~/Home2.aspx"
    />
    </urlMappings>
    4.  Try to reset your search index and then do a full crawl.
    The article gives you the details about how to reset your search index.
    Best regards,
    Victoria
    Victoria Xia
    TechNet Community Support

  • For SharePoint 2013 App, how to request permission to host web for only 2 lists?

    I find app permission requests are not granular enough. I see that there can be permission properties (key/value).
    Is there any way to request permission to more than one list. It's not comforting for a site admin to grant an app permission to ALL lists or all items in a site collection, when only one resource is required.
    Example of what the markup looks like in an app manifest:
    <AppPermissionRequests>
    <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write"/>
    </AppPermissionRequests>
    Thanks, Roy Kim

    UPDATE:
    I did some tests about that.
    I found that:
    - multiple Property elements in the same AppPermissionRequest
    are not evaluated, it is only the first one
    - with multiple AppPermissionRequest elements that use the same Scope (although they have different Rights) only the first one is
    evaluated.
    Regarding the property:
    - ListId works with this syntax
    Property
    Name="ListId"
    Value="{5532E789-ED99-403B-A0A9-F2E295536B7F}"
    />
    - List does not work as expected.
    Marco Rizzi @Avanade Italy http://blog.marcorizzi.com

  • Access Denied Web Application with Claims authentication NTLM only when using secondary URL

    I have a SharePoint 2010 server farm with 2 web front ends, an application server and a database server.  Both front ends are internal to
    our network and are not behind a load balancer.
    NOTE THAT I HAD TO SUBSTITUTE hzzp with hzzp so that I had no links in the body of this post since I am not verified
    I setup a new web application called "SharePoint 41171" with:
    Public URL:
    hzzp://testserver1:41171
    Claims authentication
    NTLM only: no forms auth
    No SSL
    New web site "SharePoint 41171"
    New app pool
    New content database
    I create a top level site collection and name mydomain\myusername as the primary site collection admin
    I am able to access this site as expected at
    hzzp://testserver1:41171 with the aforementioned site collection owner id: mydomain\myusername
    I add an alternate access mapping for a secondary URL for this web application in the Intranet zone:
    hzzp://iwatest.mydomain.com
    So my AAMs for the site read as:
    hzzp://testserver1:41171    
    Default     hzzp://testserver1:41171
    hzzp://iwatest.mydomain.com    
    Intranet     hzzp://iwatest.mydomain.com
    When I attempt to log on to
    hzzp://iwatest.mydomain.com with the same user name and password, I get "access denied".
    I can access this site using
    hzzp://iwatest.mydomain.com if I log in as the farm account.  This is the only account that seems to work.
    Side Note: If I create a separate web application without claims - just NTLM and create the same AAMs, I can login fine with the same secondary
    URL and the same user name
    IP address properly maps to this machine.
    I reviewed the ULS logs and find the following:
    10/30/2012 16:20:23.45              w3wp.exe (0x0E78)                      
                    0x1724       SharePoint Foundation              Monitoring                   
                    nasq                        Medium    Entering
    monitored scope (Request (GET:hzzp://iwatest.mydomain.com:80/_layouts/AccessDenied.aspx?Source=hzzp%3A%2F%2Fiwatest%2Emydomain%2Ecom))                
    10/30/2012 16:20:23.45              w3wp.exe (0x0E78)                      
                    0x1724       SharePoint Foundation              Logging Correlation Data     
          xmnv                        Medium    Name=Request (GET:hzzp://iwatest. mydomain.com:80/_layouts/AccessDenied.aspx?Source=hzzp%3A%2F%2Fiwatest%2Emydomain%2Ecom)      
    8f313b5e-8476-4dd4-9abe-0cb6dbe024b6
    10/30/2012 16:20:23.45              w3wp.exe (0x0E78)                      
                    0x1724       SharePoint Foundation              Logging Correlation Data     
          xmnv                        Medium    Site=/          8f313b5e-8476-4dd4-9abe-0cb6dbe024b6
    10/30/2012 16:20:23.45              w3wp.exe (0x0E78)                      
                    0x1724       SharePoint Foundation              General                      
                       8e2s                        Medium 
      Unknown SPRequest error occurred. More information: 0x80070005       8f313b5e-8476-4dd4-9abe-0cb6dbe024b6
    10/30/2012 16:20:23.45              w3wp.exe (0x0E78)                      
                    0x1724       SharePoint Foundation              Monitoring                   
                    b4ly                        Medium    Leaving
    Monitored Scope (Request (GET:hzzp://iwatest.mydomain.com:80/_layouts/AccessDenied.aspx?Source=hzzp%3A%2F%2Fiwatest%2Emydomain%2Ecom)). Execution Time=8.66003919492561   8f313b5e-8476-4dd4-9abe-0cb6dbe024b6
    Basically it tells me that access is denied.  I didnt see anything that stood out here.
    I found this article:
    hzzp://social.technet.microsoft.com/Forums/en-US/sharepointadminprevious/thread/ded9188b-ee03-4ef0-bb50-3ad138110e0c, which pointed me in the direction of ensuring that the portal
    super user and portal reader accounts were properly added to my web application.  I followed the every popular article on doing this:
    hzzp://technet.microsoft.com/en-us/library/ff758656.aspx, but still no luck.  As per the thread, I added the 2 domain accounts to the user policy with appropriate privilege
    and then set them as the super user and super reader accounts via powershell, and yes I did prefix those names with "i:0#.w|mydomain\".  To be exta sure, I repeated this for all web applications on this server with slightly different powershell steps
    depending on wether or not claims was enabled on the web application.
    The Claims to Windows Token Service is running.
    I saw some mention of ensuring that the secure token service is running with a proper application pool account, but we are not running that service
    and I cant imagine what that would have to do with my situation.
    I have deleted and readded the web application and repeated these steps to no better effect.
    I gave the mydomain\myusername full control for the web application through the user policy, ensured that it was indeed the primary site collection
    owner and added it to the default site owners group.  None of this helped.
    I changed the application pool account to the farm account.  No change in behavior.
    Rebooted IIS and the machines many times along the way.
    Further, when I attempt to sign in as a different user after being denied, I get "an unexpected error has occured message.  I found the following
    in ULS:
    10/30/2012 11:19:03.71 w3wp.exe (0x182C)                      
    0x1210  SharePoint Foundation                 Logging Correlation Data                     
    xmnv     Medium               Name=Request (GET:hzzp://iwatest.mydomain.com:80/_layouts/accessdenied.aspx?loginasanotheruser=true&Source=hzzp%3A%2F%2Fiwatest%2Emydomain%2Ecom)
    cc409ec2-4889-42fa-aa7d-9cc4535e4f0e
    10/30/2012 11:19:03.71 w3wp.exe (0x182C)                      
    0x1210  SharePoint Foundation                 Logging Correlation Data                     
    xmnv     Medium               Site=/    cc409ec2-4889-42fa-aa7d-9cc4535e4f0e
    10/30/2012 11:19:03.72 w3wp.exe (0x182C)                      
    0x1210  SharePoint Foundation                 General                      
             8e2s                Medium               Unknown SPRequest error occurred.
    More information: 0x80070005      cc409ec2-4889-42fa-aa7d-9cc4535e4f0e
    10/30/2012 11:19:03.72 w3wp.exe (0x182C)                      
    0x1210  SharePoint Foundation                 Runtime                      
            tkau                Unexpected       System.NullReferenceException: Object reference not set to an instance
    of an object.    at Microsoft.SharePoint.ApplicationPages.AccessDeniedPage.LogInAsAnotherUser()     at Microsoft.SharePoint.ApplicationPages.AccessDeniedPage.OnLoad(EventArgs e)     at System.Web.UI.Control.LoadRecursive()    
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)            cc409ec2-4889-42fa-aa7d-9cc4535e4f0e
    10/30/2012 11:19:03.74 w3wp.exe (0x182C)                      
    0x1210  SharePoint Foundation                 Monitoring                        
    b4ly                Medium               Leaving Monitored Scope (Request (GET:hzzp://iwatest.mydomain.com:80/_layouts/accessdenied.aspx?loginasanotheruser=true&Source=hzzp%3A%2F%2Fiwatest%2Emydomain%2Ecom)).
    Execution Time=22.5439266722447           cc409ec2-4889-42fa-aa7d-9cc4535e4f0e
    By the way, this occurs for the farm account also after a successful login and an attempt to sign in as a different user.
    Any help would be greatly appreciated

    Thanks spadminspadmin:
    I have, though I am not sure that what I've added there is correct:
    The URL that I am trying to use to access the web application's IIS site is hxxp://iwatest.mydomain.com.  I added a binding to the IIS site as follows:
    Type    Host name                      port        IP address
    http     iwatest.mydomain.com     41171     *
    Is that correct?

  • Web Application working correctly only with Everyone user added to user privilages

    Hello,
    I have an web application in Sharepoint 2013 which only works correctly with the Everyone (Read Only) user added to User Privileges in Central Admin. 
    If I remove Everyone user from user privileges, user domains, that are added to access groups in Site Permissions, are directed to Request Access page of the site. I cannot understand how is this happening, specially because I have other Web App on the same
    server which are working correctly.
    Could you please advice me how could I trace the problem and resolve it.
    Thank you!

    Hi Bogdan,
    According to your description, my understanding is that Everyone user cannot access the web application except adding the account to user policy of the web application in Central Administration.
    I recommend to check if the Super Reader account has been given the Full Read permission on the web application in Central Administration.
    If not, add the account to the User Policy of the web application and grant Full Read permission to the account.
    Best regards.
    Thanks
    Victoria Xia
    TechNet Community Support

Maybe you are looking for

  • Goos  issue through MIGO based on work order problems

    Hi All, Can any one guide me how to overcome the error"Purchasinh Info record not found in purchasing organisation 2434" while doing Goods(consignment materials) Issue through MIGO transaction based on work order. How to create the Purchase Info reco

  • Adding LPD printer OSX10.6.2 to Airport Extreme + ethernet hub

    I have a GCC Elite XL 20/600 connected by ethernet to a hub which is connected to my Airport Extreme. This setup was working fine with OSX10.4.11 using AppleTalk, Local Zone with a PPD proviced by GCC. Now that AppleTalk is gone, I'm supposed to set

  • System I/O Operation Time-out

    I am running iTunes 6.0.5 for Windows. When I try to sync to load about 200 songs on my iPod nano (1st generation)I get the error "The specified I/O operation on drive G: was not completed before the time-out period expired." If I am lucky I might ge

  • Awaiting approval status in SC

    Hi experts, we have set up a new system for testing.(SRM 5)when the user creates a SC it goes for approval.So based on the workitem i went to SWIA and completed the approval manually. still the shopping cart status is Awaiting approval. If i am missi

  • I want to find the root directory for a png file on my Macbook air

    I am using html to make a website and want to use a png on my macbook but need the root directory for the image source. I am not sure how to get this, can anyone tell me how?