Thx for ur answers, I have reied what you say about the second
question, but it's do not work. This is how I have changed my
"context.xml" file:
===
<?xml version='1.0' encoding='utf-8'?>
<Context privileged="true" swallowOutput="true"
workDir="work\Catalina\photoalbum\" path="/" cacheTTL="0"
cachingAllowed="false" displayName="bannerEmbedded beta" docBase="."
cacheMaxSize="0" reloadable="true">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="PhotoAlbum"/>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs/photoalbum/" fileDateFormat="yyyy-MM-dd" suffix=".txt"
prefix="photoalbum_access_log."/>
<!--<ResourceLink name="PhotoAlbum" global="PhotoAlbum"
type="org.apache.catalina.UserDatabase"/>-->
<Resource type="org.apache.catalina.UserDatabase" description="User
database that can be updated and saved" auth="Container"
name="PhotoAlbum"/>
<ResourceParams name="PhotoAlbum">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/Catalina/photoalbum.localhost/photoalbum-users.xml</value>
</parameter>
</ResourceParams>
</Context>
===
I have removed the ResourceParams from the server.xml file and move it
into the context.xml but in the log I can read this errors messages:
1) javax.naming.NameNotFoundException: Name PhotoAlbum is not bound in
this Context
2) GRAVE: Catalina.start:
LifecycleException: No UserDatabase component found under key PhotoAlbum
3) 2005-02-07 09:55:30 UserDatabaseRealm[photoalbum.localhost]:
Exception looking up UserDatabase under key PhotoAlbum
javax.naming.NameNotFoundException: Name PhotoAlbum is not bound in this Context
do u know why? I have I have give you all the elements you need to help me.
On Sun, 06 Feb 2005 22:21:21 +0100, Mario Winterer
<[EMAIL PROTECTED]> wrote:
> Hi!
>
> I'm happy you could solve your problem now! Seems the reason was the
> missing Realm-definition in your context.xml.
>
> To Question 1)
> Tomcat offers a separate JNDI-namespace for each web application (so if
> you have 4 web applications you will have 4 namespaces). These
> namespaces are configured in the <context>-elements of the corresponsing
> web-applications. To define resources, you have to nest a
> <Resource>-element in your <context>-element (which should be in
> context.xml).
> A resource that is defined in the namespace of a web application cannot
> be seen by other web applications (because the namespaces are separated
> from each other).
> Sometimes, a resource may be required by more than one web application.
> To avoid configuring this resource several times - once per context -
> tomcat offers another namespace that is global and exists only once per
> tomcat instance. If you define a resource there, you can use it in each
> web application, that is allowed to use it.
> So how can you allow a web application to use a global resource? Simply
> "link" the global resource into the local JNDI-namespace of the
> web-application! This can be done by nesting a <ResourceLink> element in
> the <context> element of the web-application that should be allowed to
> use the resource. When defining a <ResourceLink>-element, you must
> specify, which global resource you want to link into the namespace
> (attribut "global"), which type the resource is that you want to link
> (attribut "type"), and which name it should have in the local namespace
> (attribut "name") - this name can be equal to the global name.
>
> So the server.xml and context.xml hierarchy could look like the
> following (sorry for the "text-art" - use a fixed width font for "best
> results"):
>
> +- Server
> |
> +- GlobalNamingResources
> | +- Resource GlobResA
> | +- Resource GlobResB
> |
> +- Service
> +- Engine
> +- Realm X
> +- Host www.A.org
> | +- Context /A1 (defined in context.xml)
> | | +- ResourceLink to GlobResA, name: LocResA
> | |
> | +- Context /A2 (defined in context.xml)
> | | +- ResourceLink to GlobResA, name: LocResA
> | | +- ResourceLink to GlobResB, name: LocResB
> | |
> | +- Context /A3 (defined in context.xml)
> | +- Resource, name LocalResA
> |
> +- Host www.B.org
> +- Context /B1
> | +- ResourceLink to GlobResA, name: LocResA
> |
> +- Context /B2
> +- ResourceLink to GlobResB, name: LocResB
>
> Question 2) If you do not want to change server.xml (e.g. because you
> want to deploy your application to a foreign server and you cannot
> modify server.xml there), you could define a local JNDI-Resource in the
> <context>-element of your web-application instead of the
> GlobalNamingResource (simply move the resource-definition from
> <GlobalNamingResource> into your <context>-element). If you do this, of
> course you do not need the <ResourceLink> any more!
> So you do not have to touch server.xml because all configurations can be
> done inside context.xml which is in the meta-inf directory of your web
> application.
>
> I hope, my explanations where understandable!
>
> Best regards,
> Tex
>
>
> Omar Adobati wrote:
>
> >changes in server.xml:
> >===
> ><GlobalNamingResources>
> >
> > <Resource type="org.apache.catalina.UserDatabase" description="User
> >database that can be updated and saved" auth="Container"
> >name="PhotoAlbum"/>
> > <ResourceParams name="PhotoAlbum">
> > <parameter>
> > <name>factory</name>
> > <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
> > </parameter>
> > <parameter>
> > <name>pathname</name>
> > <value>conf/Catalina/photoalbum.localhost/photoalbum-users.xml</value>
> > </parameter>
> > </ResourceParams>
> >
> ></GlobalNamingResources>
> >===
> >
> >changes in [context].xml
> >===
> ><?xml version='1.0' encoding='utf-8'?>
> ><Context privileged="true" swallowOutput="true"
> >workDir="work\Catalina\photoalbum\" path="/" cacheTTL="0"
> >cachingAllowed="false" displayName="bannerEmbedded beta" docBase="."
> >cacheMaxSize="0" reloadable="true">
> > <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
> >resourceName="PhotoAlbum"/>
> > <Valve className="org.apache.catalina.valves.AccessLogValve"
> >directory="logs/photoalbum/" fileDateFormat="yyyy-MM-dd" suffix=".txt"
> >prefix="photoalbum_access_log."/>
> > <ResourceLink name="PhotoAlbum" global="PhotoAlbum"
> >type="org.apache.catalina.UserDatabase"/>
> > </Context>
> >===
> >
> >Question 1)
> >Also if I've red the tomcat site docs I cant understand so good what
> >ResourceLink does. Does anyone can explain me?
> >
> >Question 2)
> >Using this approach I have changed the server.xml manually. So, if I
> >need/want to deploy my own webapp using a war file, which approach I
> >have to use?
> >
> >(I'm sorry fot my bad english...)
> >
> >On Sun, 6 Feb 2005 20:00:04 +0100, Omar Adobati <[EMAIL PROTECTED]> wrote:
> >
> >
> >>>But did you "connect" the UserDatabase
> >>>with the web-application by specifying a realm in your context?
> >>>(context.xml or server.xml)
> >>>
> >>>
> >>How can I set the Realm in my Context to specity an xml database?
> >>(maybe this is the main problem because it actually not exist)
> >>
> >>
> >>
> >
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
Adobati Omar
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]