Here is an example from what I do:

server.xml:

 <?xml version='1.0' encoding='utf-8'?>
<Server>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener 
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <GlobalNamingResources>
    <Environment description="" name="com.skillsoft.mgs.sso.TL" 
type="java.lang.Boolean" value="true"/>
    <Environment description="Hibernate dialect: 
net.sf.Hibernate.dialect.[SQLServerDialect|OracleDialect|Oracle9Dialect]" 
name="hibernate.dialect" override="false" type="java.lang.String" 
value="net.sf.hibernate.dialect.SQLServerDialect"/>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" description="User database that can be updated 
and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
    <Resource name="com/skillsoft/ilt/jdbc" type="javax.sql.DataSource"/>
    <Resource name="com/skillsoft/mgs/mail/session" type="javax.mail.Session"/>
    <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>
    <ResourceParams name="com/skillsoft/ilt/jdbc">
      <parameter>
        <name>url</name>
        
<value>jdbc:jtds:sqlserver://localhost:1433;useCursors=true;useLOBs=false</value>
      </parameter>
      <parameter>
        <name>validationQuery</name>
        <value>SELECT TOP 1 iltVersion FROM iltVersion</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>50</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>100</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>net.sourceforge.jtds.jdbc.Driver</value>
      </parameter>
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>sa</value>
      </parameter>
      <parameter>
        <name>factory</name>
        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value></value>
      </parameter>
      <parameter>
        <name>defaultCatalog</name>
        <value>sp62107Master</value>
      </parameter>
      <parameter>
        <name>initialSize</name>
        <value>25</value>
      </parameter>
    </ResourceParams>
    <ResourceParams name="com/skillsoft/mgs/mail/session">
      <parameter>
        <name>mail.smtp.port</name>
        <value>25</value>
      </parameter>
      <parameter>
        <name>mail.smtp.host</name>
        <value>10.20.30.40</value>  <!--  Changed to protect the innocent. -->
      </parameter>
      <parameter>
        <name>mail.smtp.sendpartial</name>
        <value>true</value>
      </parameter>
    </ResourceParams>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" 
disableUploadTimeout="true" port="8080" redirectPort="8443">
    </Connector>
    <Connector URIEncoding="UTF-8" debug="9" disableUploadTimeout="true" 
maxProcessors="0" port="8009" protocol="AJP/1.3" 
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" 
redirectPort="8443">
    </Connector>
    <Engine defaultHost="localhost" jvmRoute="dkoesxp8009" name="Catalina">
      <Host appBase="webapps" name="localhost">
        <Logger className="org.apache.catalina.logger.FileLogger" 
prefix="localhost_log." suffix=".txt" timestamp="true"/>
      </Host>
      <Logger className="org.apache.catalina.logger.FileLogger" 
prefix="catalina_log." suffix=".txt" timestamp="true"/>
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    </Engine>
  </Service>
</Server>

context.xml:

<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" displayName="SkillPort ILT Add-On (Unofficial 
Version)" docBase="D:/Projects/ILT" path="/ilt" reloadable="true" 
workDir="D:/Projects/ILT/work">
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
  <Environment description="" name="com.skillsoft.mgs.sso.TL" 
type="java.lang.Boolean" value="true"/>
  <ResourceLink global="hibernate.dialect" name="hibernate.dialect" 
type="java.lang.String"/>
  <ResourceLink global="com/skillsoft/ilt/jdbc" name="com/skillsoft/ilt/jdbc" 
type="javax.sql.DataSource"/>
  <ResourceLink global="com/skillsoft/mgs/mail/session" 
name="com/skillsoft/mgs/mail/session" type="javax.mail.Session"/>
</Context>

-----Original Message-----
From: Brian Bonner [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, August 09, 2005 4:25 PM
To: Tomcat Users List
Subject: Re: MailSessionFactory problems in 5.5.9

P.S.  I'm using jdk 1.5.0_04 with Eclipse 3.1 and WTP 0.7 with Spring
1.2.2 as my dev environment.

Brian



Brian Bonner wrote:

> Hello,  I'm trying to use the
> org.apache.naming.factory.MailSessionFactory in 5.5.9 with Spring's 
> JndiObjectFactoryBean and I'm experiencing problems.  I want to 
> configure a global mail configuration and then use a resource-link to 
> link one or more apps to the resource.
>
> i.e.
>
> <Resource name="GlobalMailSession" auth="Container"
>            type="javax.mail.Session" description="Global Mail Session" 
> mail.smtp.user="xyz" password="dummy" >
>        </Resource>
>
> The GlobalLifecycleListener creates these MBeans (and the appropriate
> javax.mail.Authenticator)
>
> Unfortunately, however, I can't specify the smtp.mail.host, port, 
> protocol or localhost with this resource definition.  smtp.mail.host 
> defaults to localhost.
> When I want to access the mailSession using Spring, doing a lookup 
> causes a new MailSession to be created with the settings of the 
> ResourceReference (i.e. the Authenticator is null).
>
>    <bean id="mailSession"
>        class="org.springframework.jndi.JndiObjectFactoryBean" 
> singleton="true">
>        <property name="jndiName">
>            <value>mail/MailSession</value>
>        </property>
>        <property name="resourceRef">
>            <value>true</value>
>        </property>
>        <property name="javaMailProperties">
>            <props>
>                <prop key="mail.smtp.port">25</prop>
>                <prop key="mail.transport.protocol">smtp</prop>
>                <prop key="mail.smtp.host">mymailhost</prop>
>            </props>
>        </property>
>    </bean>
>
> My Web.xml's resource-ref is as follows:
>
>    <resource-ref>
>        <description>Mail Session</description>
>        <res-ref-name>mail/MailSession</res-ref-name>
>        <res-type>javax.mail.Session</res-type>
>        <res-auth>Container</res-auth>
>        <res-sharing-scope>Shareable</res-sharing-scope>
>    </resource-ref>
>
> My context.xml (that I'm definining in the META-INF directory) includes:
>
> <ResourceLink name="mail/Session"
>            global="GlobalMailSession"
>            type="javax.mail.Session" />
>
> So, I have the properties for port, protocol, and localhost, but the 
> Authenticator is gone.  Argh!
>
> I've seen other folks have problems with this in 5.5.  Looking at the 
> source suggests that this Factory needs some work.  I looked at the 
> 5.5.10 changelog and it doesn't show any changes to this code AFAIK.
>
> So my quick questions are:
>
> 1.  The ResourceParams tag doesn't appear to be supported any longer 
> in Tomcat 5.5.x.  (they were supported in 4.1.x, but I can't even find 
> reference to them).  How do I define the localhost as well as 
> authentication for a global MailSessionFactory resource?
>
> 2.  How do I prevent a new resource being created in 5.5.x each 
> time--why can't I get to the original global resource?  Is there a 
> switch I forgot to throw?
>
> Thanks.
>


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