Hi Caroline,
        Check out the DTD - 
<!ELEMENT security-role (description?, role-name)> .

        Try having one role-name per security-role.

        Also, ensure that your security role is positioned in the right
place in your web.xml (again, look at the DTD).

Nick Faiz.

-----Original Message-----
From: Caroline Jen [mailto:[EMAIL PROTECTED] 
Sent: Thursday, 9 October 2003 1:53 PM
To: [EMAIL PROTECTED]
Subject: What Is Wrong With My web.xml File (Struts)

My Struts application worked well until I added
security in the web.xml file.  I got the error message
shown below and I cannot spot any mistake with my
eyes:

[QUOTE]
2003-10-08 23:33:25 Exception initializing
TldLocationsCache: XML parsing error on file
/WEB-INF/web.xml: (line 137, col 19): The content of
element type "security-role" must match
"(description?,role-name)".
[/QUOTE]

and my web.xml file is:
[CODE]
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd";>
<web-app>

  <!-- Configuring Artimus -->
  <servlet>
    <servlet-name>artimus</servlet-name>
   
<servlet-class>org.apache.artimus.http.ArtimusServlet</servlet-class>
    <!-- Our application properties -->
    <init-param>
      <param-name>default</param-name>
     
<param-value>resources/artimus.properties</param-value>
    </init-param>
    <!-- Our connection adaptor -->
    <init-param>
      <param-name>adaptor</param-name>
     
<param-value>org.apache.commons.scaffold.sql.PoolmanAdaptor</param-value>
    </init-param>
    <init-param>
      <param-name>adaptor.key</param-name>
      <param-value>jdbc-artimus</param-value>
    </init-param>
<!-- Alternate adaptors
    <init-param>
      <param-name>adaptor</param-name>
     
<param-value>org.apache.commons.scaffold.sql.ServletAdaptor</param-value>
    </init-param>
    <init-param>
      <param-name>adaptor.key</param-name>
     
<param-value>org.apache.struts.action.DATA_SOURCE</param-value>
    </init-param>
    <init-param>
      <param-name>adaptor</param-name>
     
<param-value>org.apache.commons.scaffold.sql.ConnectionAdaptor</param-value>
    </init-param>
    <init-param>
      <param-name>adaptor.key</param-name>
      <param-value>jdbc/artimus</param-value>
    </init-param>
-->
    <!-- Our startup priority -->
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- Standard Struts configuration -->
  <servlet>
    <servlet-name>action</servlet-name>
    <!--
org.apache.struts.tiles.ActionComponentServlet -->
   
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
     
<param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>null</param-name>
      <param-value>false</param-value>
    </init-param>
  <!-- Startup priority -->
    <load-on-startup>2</load-on-startup>
  </servlet>

  <!-- servlet-mappings, welcome-file-list -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>/do/*</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <!-- taglibs -->
  <taglib>
    <taglib-uri>/tags/struts-bean</taglib-uri>
   
<taglib-location>/WEB-INF/lib/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/tags/struts-html</taglib-uri>
   
<taglib-location>/WEB-INF/lib/struts-html.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/tags/struts-logic</taglib-uri>
   
<taglib-location>/WEB-INF/lib/struts-logic.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/tags/tiles</taglib-uri>
   
<taglib-location>/WEB-INF/lib/struts-tiles.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/tags/request</taglib-uri>
   
<taglib-location>/WEB-INF/lib/request.tld</taglib-location>
  </taglib>

  <!-- Our secuity settings -->
  <security-constraint>
    <web-resource-collection>
     
<web-resource-name>Administrative</web-resource-name>
        <!-- The URLs to protect -->
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <!-- The authorized users -->
      <role-name>administrator</role-name>
      <role-name>advisor</role-name>
      <role-name>editor</role-name>
      <role-name>contributor</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>

  <login-config>
    <auth-method>FORM</auth-method> 
    <form-login-config> 
     
<form-login-page>/signin/logon.jsp</form-login-page>  
     
<form-error-page>/signin/logon.jsp?error=true</form-error-page>
    </form-login-config>                  
  </login-config> 

  <!-- Our authentification strategy -->
  <security-role>
    <description>Registered Members</description>
    <role-name>administrator</role-name>
    <role-name>advisor</role-name>
    <role-name>editor</role-name>
    <role-name>contributor</role-name>
  </security-role>   // line 137 is here

</web-app>
[/CODE]

__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to