RMI_jonas.jar
.
Configuration of JOnAS is made via a little number of configuration files:
jonas.properties
file is used to configure the JOnAS
server and the different services that it may launch,jndi.properties
file is used to configure access to JNDI,config_env
files:
$JONAS_ROOT/bin/unix/config_env
on
Unix%JONAS_ROOT%\bin\nt\config_env.bat
on WindowsCLASSPATH
used by JOnAS.
JOnAS EJB servers are configured via files
named jonas.properties
. It contains a list of key/value pairs
presented in the java properties file format.
Such files can be found at three different places:
$JONAS_ROOT/config/jonas.properties
$HOME/jonas.properties
./jonas.properties
An EJB server will read the three possible files in this order (1, 2, 3),
each one may overwrite properties defined in a previous file. Finally, it is
possible to define properties on the command line: (java -D...
).
CheckEnv
command to review the JOnAS configuration state.
The properties files related to Datasource or JCA configuration follows the same rule than the previous one.
The jndi.properties
file is automatically looked up by JNDI in the classpaths.
When you need to have the visibility of specific .jar
files,
the best practice consists in updating the config_env
file.
For example, to see the JDBC driver classes you need you may update in this file
one of the variables IDB_CLASSES
, ORACLE_CLASSES
, POSTGRE_CLASSES
,
INTERBASE_CLASSES
.
Another way to put an additional .jar
in the classpaths
of your JOnAS server is to insert at the end of config_env
file such a line:
CLASSPATH=<The_Path_To_Your_Jar>$SPS$CLASSPATHAt least, a third way to do this is to set an environment variable named
XTRA_CLASSPATH
that is used by config_env
to build
the CLASSPATH
.
jonas.name
and jonas.orb.port
, the former indicates the name
of the JOnAS server, the latter the port number on which the remote objects receive calls.
jonas.name
is jonas.
When you need to have several JOnAS servers running simultaneously
it is valuable to set a different name for each JOnAS server and so it will be possible to administrate
these servers via the JOnAS administration tools.
jonas.orb.port
is 0 this means that an anonymous port is chosen.
Setting this property to a specific port number may be used when JOnAS server is behind a firewall.
Access to JNDI is bound to a jndi.properties
file that must
be accessible from the classpath.
Such a file is supplied with the JOnAS distribution in the
$JONAS_ROOT/config
directory and by default the CLASSPATH
is up to date
to access to this file by the way of the config_env file.
The jndi.properties
file contents for RMI and DAVID is:
java.naming.factory.initial com.sun.jndi.rmi.registry.RegistryContextFactory java.naming.provider.url rmi://localhost:1099 java.naming.factory.url.pkgs org.objectweb.jonas.naming
The jndi.properties
file contents for JEREMIE is:
java.naming.factory.initial org.objectweb.jeremie.libs.services.registry.jndi.JRMIInitialContextFactory java.naming.provider.url jrmi://localhost:12340 java.naming.factory.url.pkgs org.objectweb.jonas.naming
Customization of JNDI consists to edit the
$JONAS_ROOT/config/jndi.properties
file and mainly to choose between RMI and JEREMIE.
You may change localhost
to the hostname where registry will be run.
You may want to change the standard port number too. In this case, don't forget to run
registry with this port number as argument: registry <Your_Portnumber>
,
when the registry is not launched inside the EJB server.
Remember of the default configuration of the JOnAS distribution is for RMI.
The following steps are required to change from RMI to JEREMIE:
jndi.properties
file as indicated previously.OBJECTWEB_ORB=JEREMIE
in the $JONAS_ROOT/bin/unix/config_env
file
on Unix (or in the %JONAS_ROOT%\bin\nt\config_env.bat
file on Windows). JEREMIE_jonas.jar
instead of RMI_jonas.jar
).If you have already deployed EJB with RMI you must redeploy (i.e run the GenIC tool) them for JEREMIE use.
JEREMIE has a special configuration file
jonathan.xml
under
$JONAS_ROOT/config
, that, in general you can easily ignore.
This file must be seen via the classpath and it is the case by default thanks to
config_env. Look at Configuring Jonathan/Jeremie how to
disable security feature with JEREMIE.
From now on, you can build/use JOnAS on the top of DAVID which is the CORBA personality of the JONATHAN ORB.This version uses two naming services for object binding:
The general operation principle of JOnAS over rmi-iiop is the same operation principle than JOnAS over rmi-jrmp, there are only some restrictions listed at the end of this section. Remember of the default configuration of the JOnAS distribution is for RMI.
The following steps are required to change from RMI to DAVID:
jndi.properties
file as for RMI.OBJECTWEB_ORB=DAVID
in the $JONAS_ROOT/bin/unix/config_env
file
on Unix (or in the %JONAS_ROOT%\bin\nt\config_env.bat
file on Windows).COSNAMING_PORT=14727
(this is an example, set your Cosnaming port)
COSNAMING_HOST=jonas.objectweb.org
(this is an example, set your Cosnaming host) in
the $JONAS_ROOT/bin/unix/config_env
file on Unix (or in
the %JONAS_ROOT%\bin\nt\config_env.bat
file on Windows).DAVID_jonas.jar
is in your classpath rather than RMI_jonas.jar
(The config_env file does this automatically)If you have already deployed EJB with RMI or JEREMIE you must re-deploy (i.e run the GenIC tool) them for DAVID use.
DAVID has a special configuration file
jonathan.xml
under
$JONAS_ROOT/config
, that, in general, you can easily ignore.
This file must be seen via the CLASSPATH
and it is the case by default
thanks to config_env. Look at Configuring Jonathan/David how to
disable security feature with DAVID.
CosNaming and Registry with DAVID special features
jonas.services.registry.mode
to value remote
in the JONAS_ROOT/config/jonas.properties
file.
The default value for jonas.services.registry.mode
is automatic
so, if you start the remote registry
before the JOnAS server with the default configuration, it will work fineregistry 14727 1099
.
The last two numbers (CosNaming port and Registry port) are optional, if they are not
specified,
the registry starts with default configuration: with the CosNaming port set to 14727 and
the registry port set to 1099. Be sure that, if you run
the registry command with the 2 port numbers,
this two numbers correpond to your server configuration (COSNAMING_PORT
and
provider.url port in the jndi.properties file
)Rmi Iiop Client with DAVID
The following steps are required to launch a rmi iiop client with David:
OBJECTWEB_ORB
set to DAVID)registry <cosnaming port> <registry port>
EJBServer <cosnaming host> <cosnaming port>
java \
-Dorg.omg.CORBA.ORBClass=org.objectweb.david.libs.binding.orbs.iiop.IIOPORB \
-Dorg.omg.CORBA.ORBSingletonClass=org.objectweb.david.libs.binding.orbs.ORBSingletonClass \
-Djavax.rmi.CORBA.StubClass=org.objectweb.david.libs.stub_factories.rmi.StubDelegate \
-Djavax.rmi.CORBA.PortableRemoteObjectClass=org.objectweb.david.libs.binding.rmi.ORBPortableRemoteObjectDelegate \
-Djavax.rmi.CORBA.UtilClass=org.objectweb.david.libs.helpers.RMIUtilDelegate \
-Ddavid.CosNaming.default_method=0 \
-Ddavid.rmi.ValueHandlerClass=com.sun.corba.se.internal.io.ValueHandlerImpl \
-Ddavid.CosNaming.default_host=$COSNAMING_HOST \
-Ddavid.CosNaming.default_port=$COSNAMING_PORT \
your.client.ClassName
JOnAS with DAVID Restrictions:
Since Jonas 2.5, the logging system is based on Monolog, the new standard API for Objectweb projects. Configuring trace messages inside Jonas or the modules it uses can be done by two ways :
A standard file is given in $JONAS_ROOT/config/trace.properties
The policy to retrieve this file is to use the CLASSPATH. You can either change the file in its standard location, or to copy
your own version somewhere else.
You can refer to the monolog documentation to know in more details how you can configure logging. Basically, we must know that monolog is build above a standard log API (currently, log4j). You can define loggers, each one being backed on a handler. 3 handlers have been defined :
Each handler can define the header it will use, the type of logging (console, file), and the file name.
Loggers are structured as a tree. root represents the root of the tree. Each logger is a topical logger, i.e. is associated with a topic. topic name are usually based on the package name. Each logger can define the handler it will use, and the trace level among these 4 values :
If a logger has nothing defined, it will use the properties defined for its parent.
Jonas modules (org.objectweb.jonas_xxx) use generally the tty handler because all messages had been written (in older jonas version) with the method name inside, so no need to add it again.
Jonas code is written using directly monolog API, so they use the tty2 handler.
Example of setting DEBUG level for the logger used in jonas_ejb module:
logger.org.objectweb.jonas_ejb.level DEBUG
Jadmin
. This is not a mandatory service.jonas.services
property
in jonas.properties
file. The services will be started in the order of the list.
The order required when all the services must be started is the following:
jonas.services registry,jmx,security,jtm,dbm,mail,resource,jms,ejbIt is possible to launch the Transaction manager service alone. There is no sense to try to launch other services alone.
Most of configuration information for services are located in the jonas.properties
file following a precise naming convention : a service XX will be configured via a set
of properties:
jonas.service.XX.foo
something
jonas.service.XX.bar
else
jndi.properties
see Configuring JNDI Environment.
There is different Registry launching mode depending on the value of the
JOnAS property, jonas.service.registry.mode
.
The possible values of the jonas.service.registry.mode
property are:
collocated
: the Registry is launched in the same JVM as JOnAS Server,remote
: the Registry has to be launched before in a separate JVM,automatic
: the Registry is launched in the same JVM as JOnAS Server,
if it's not already started, (this is the default value).The port number on which the Registry is launched, is defined in the
jndi.properties
file.
jonas.service.ejb.descriptors
property
in jonas.properties
file. In this property must be set a list of containers
that must be created. A container is created from an ejb-jar
file or from an EJB
deployment descriptor identified by their files names. These files names absolute path name
or relative path name. In the later case the path is relative to where the JOnAS Server
is launched. In case of ejb-jar
file, the name may also correspond to a file located
in the $JONAS_ROOT/ejbjars/
directory.
jonas.service.ejb.descriptors Bank.jar, ../sample.xmlHere the Container service will a create a container from the
ejb-jar
file named Bank.jar
.
If there is no Bank.jar
in the directory where JOnAS was launched,
this file will be searched in $JONAS_ROOT/ejbjars/
directory.
sample.xml
and jonas-sample.xml
that must both be located in a parallel directory
to the one where JOnAS was launched.
jonas.service.web.descriptors
property
in jonas.properties
file. In this property must be set a list of wars that must be deployed when JOnAS is
launched. A WEB container is created from a war
file, these files names absolute path name
or relative path name. In the later case the path is relative to where the JOnAS Server
is launched. In case of war
file, the name may also correspond to a file located
in the $JONAS_ROOT/webapps/
directory.
jonas.service.web.descriptors Bank.warHere the WEB Container service will a create a container from the
war
file named Bank.war
.
If there is no Bank.war
in the directory where JOnAS was launched,
this file will be searched in $JONAS_ROOT/webapps/
directory.ejb-jars
and some wars
).
This service is based upon the WEB container service and the EJB container service. The WEB container service is
used by the EAR service to provide the WEB container for the wars
of the J2EE application, and the
EJB container service is used to provide the EJB container for the ejb-jars
of the J2EE application.
jonas.service.ear.descriptors
property
in jonas.properties
file. In this property must be set a list of ears
that must be deployed when
JOnAS is launched. These files names absolute path name or relative path name. In the later case
the path is relative to where the JOnAS Server is launched. In case of ear
file,
the name may also correspond to a file located in the $JONAS_ROOT/apps/
directory.
jonas.service.ear.descriptors Bank.earHere the EAR service will deploy the
ear
file named Bank.ear
.
If there is no Bank.ear
in the directory where JOnAS was launched,
this file will be searched in $JONAS_ROOT/apps/
directory.jonas.name TM jonas.services jtm jonas.service.jtm.remote falseand
jonas.name EJB jonas.services jmx,security,jtm,dbm,ejb jonas.service.jtm.remote true jonas.service.ejb.descriptors foo.jarAnother possible configuration is the value of the transaction timeout, in seconds, via the
jonas.service.jtm.timeout
property.
jonas.service.jtm.timeout 60
In order to be able to access one or several relational databases (e.g. Oracle, InstantDB, PostgreSQL, ...), JOnAS will create and use DataSource objects. You have to configure such a DataSource object according to the database you intend to use for the persistence of a bean. More details about DataSource objects and their configuration is provided in the "Configuring JDBC DataSources" chapter of the Bean Programmer's Guide.
The subsections below briefly explains how to configure a DataSource object for your database, in order to be able to run the Entity Bean example delivered with the platform.
A template Oracle1.properties file is
supplied in the installation directory. This file is used to define a
DataSource object, named Oracle1
.
You must update this template with values proper to your installation.
The fields are the following:
datasource.name | JNDI name of the DataSource: The name used in the example is jdbc_1 .
|
datasource.url | The JDBC database URL: for the Oracle JDBC "Thin" driver it is jdbc:oracle:thin:@hostname:sql*net_port_number:ORACLE_SID If you are using an Oracle OCI JDBC driver, the URL is jdbc:oracle:oci7: or jdbc:oracle:oci8:
|
datasource.classname | Name of the class implementing the Oracle JDBC driver:oracle.jdbc.driver.OracleDriver
|
datasource.username | Database user name |
datasource.password | Database user password |
In order that the EJB platform creates the corresponding DataSource object,
you must have its name (Oracle1, not the JNDI name) in your
jonas.properties
file, on the jonas.service.dbm.datasources line:
jonas.service.dbm.datasources Oracle1
You may have several DataSource objects defined for an EJB server, in this case, you will have several dataSourceName.properties files, and the list of DataSource names on the jonas.service.dbm.datasources line of the jonas.properties file:
jonas.service.dbm.datasources Oracle1, Oracle2, InstantDB1
Your Oracle server must be running, and a JDBC driver installed (Oracle
JDBC drivers may be downloaded at their Web site).
You can then create the table used by the example with the SQL script
provided in examples/src/eb/Account.sql
.
For example:
sqlplus user/passwd SQL> @Account.sql SQL> quit
The JDBC driver classes must be accessible from the classpath. For that, you must
update the config_env file;
($JONAS_ROOT/bin/unix/config_env
on Unix,
or %JONAS_ROOT%\bin\nt\config_env.bat
on Windows).
A template InstantDB1.properties file is supplied in the installation directory. This file is used to define a Datasource object, named InstantDB1. You must update this template with values proper to your installation. The fields are the following:
datasource.name | JNDI name of the DataSource:
The name used in the example is jdbc_1 .
|
datasource.url | The JDBC database URL: for InstantDB it is
jdbc:idb=db1.prp
|
datasource.classname | Name of the class implementing the JDBC driver:
org.enhydra.instantdb.jdbc.idbDriver
|
In order that the EJB platform creates the corresponding DataSource object,
you must have its name (InstantDB1, not the JNDI name) in your
jonas.properties
file, on the jonas.service.dbm.datasources line
jonas.service.dbm.datasources InstantDB1
InstantDB should have been properly installed and configured. You should use a version higher than 3.14. (examples have been tested with 3.25).
The JDBC driver classes must be accessible from the classpath. For that, you must
update the config_env file;
($JONAS_ROOT/bin/unix/config_env
on Unix,
or %JONAS_ROOT%\bin\nt\config_env.bat
on Windows).
You have to create the Account database using the utility provided with InstantDB:
cd examples/src/eb . $JONAS_ROOT/bin/unix/config_env java org.enhydra.instantdb.ScriptTool Account.idb
The same kind of process can be used for other databases. We supply with JOnAS a template of datasource for PostgreSQL and for InterBase. Of course many other databases are currently used by the JOnAS users, e.g. Informix, Sybase, SQL Server, ... however not all JDBC drivers have been tested against JOnAS.
The Security service is used by the Container service to provide security for EJB components. The Container service provides security in two forms: declarative security and programmatic security. The Security service exploits security roles and method permissions found in the EJB deployment descriptor.
Note that:
jonas.properties
file for configuring security service.
It is up to Jonathan/Jeremie to propagate the security context
(built after authentication process). However if this security feature is not needed,
you can disable this feature by modifying the
jonathan.xml
file and
put this line in comments:
<ELEM name="200"><ALIAS name="/jeremie/SSHandler/instance"/></ELEM>
Disabling the security feature increases performance.
It is up to Jonathan/David to propagate the security context
(built after authentication process). However if this security feature is not needed,
you can disable this feature by modifying the
jonathan.xml
file and
put this line in comments:
<ELEM name="200"><ALIAS name="/david/SSHandler/instance"/></ELEM>
Disabling the security feature increases performance.
With RMI in order to use security in JOnAS, special Stubs and Skeletons must
be generated.
This is done by using GenIC tool with the
-secpropag
option.
Now Tomcat version 3.3.x or Tomcat 4.0.3 may be used to identify and authenticate and can be
embedded via the tomcat service
( seeConfiguring Tomcat service)
There is one step to enable Tomcat to be used as an authenticated
client for JOnAS.
With Tomcat3.3.x (both on RMI or on Jeremie), in the
$TOMCAT_HOME/conf/modules.xml
file, replace the
following line:
<module name="AccessInterceptor" javaClass="org.apache.tomcat.modules.aaa.AccessInterceptor"/>
by :
<module name="AccessInterceptor" javaClass="org.objectweb.security.tomcat.interceptor.SecurityCtxInterceptor33"/>
With Tomcat4.0.x (both on RMI or on Jeremie), in the
$TOMCAT_HOME/conf/server.xml
file, replace the
following line:
<Realm className="org.apache.catalina.realm.MemoryRealm"/>
by :
<Realm className="org.objectweb.security.tomcat.interceptor.SecurityCtxInterceptor40"/>
web-jetty.xml
file under WEB-INF
directory in the .war
file in which it specified that the security interceptor org.objectweb.security.jetty.realm.JonasRealm
for JOnAS must be used instead of the default one. (an example of such file may be found in the sample websample
of the JOnAS distribution under JONAS_ROOT/example/websample/etc
).jettyRealm.properties
file that is used by jetty for authentication. You will find under JONAS_ROOT/config
an example of such a file currently initialized for using jadmin
, websample
example and alarm
demo.JOnAS relies on the
jonas-users.properties
file for the access control to
the methods of EJB components. This is a simple properties file where
each property has the following
syntax: <principal> = <list of roles>
where
<principal>
is a string identifying the user. It can
be an email address
(joe.bar@foo.com
) or a login (barj
) or
whatever identifying the user.
<list of roles>
is a list of roles separated by
commas (e.g.: administrator, user
). These roles will
be used in the deployment descriptor of the EJB component.It has to be noted that to use Tomcat to identify and authenticate
the users, the principals defined in the jonas-users.properties
must be the same that those in the
$TOMCAT_HOME/conf/users/tomcat-users.xml
file
($TOMCAT_HOME/conf/tomcat-users.xml
file for Tomcat 4.0.3).
However, the roles defined in these two files may be
the same but it is not mandatory:
tomcat-users.xml
file
are used in Tomcat.jonas-users.properties
file are used in JOnAS.For Jetty the corresponding configuration file is jettyRealm.properties
file in which users passwords and roles are defined for each web application. This file is by default under JONAS_ROOT/config
.
jonas.properties
file for jms service:
jonas.service.jms.collocated
for setting the JMS server launching mode.
If set to true it is launched in the same JVM as JOnAS Server (this is the default value)
if set to false it is launched in a separate JVM in this case the jonas.service.jms.url
must be set with the connexion url to the JMS server.
jonas.service.ejb.mdbthreadpoolsize
is used for setting the default thread pool
used Message Driven Beans (10 is the default value).
jonas.service.jms.queues
and jonas.service.jms.topics
are used for setting lists
of administered objects queues or topics at launching time.
jonas.service.jms.mom
is used to indicate what class must be used to perform
administrative operations. This class is the wrapper to the actual JMS provider
implementation. The default one is org.objectweb.jonas_jms.JmsAdminForJoram
that must be used for Joram.
You may get a com.swiftmq.appserver.jonas.JmsAdminForSwiftMQ class from the
SwiftMQ site if you intend to use the SwiftMQ product.
The role of the JCA Resources service is to deploy the Resource Adapter in JOnAS server i.e configure it in the operational environment and register in JNDI namespace a connection factory instance that can be looked up by the EJB components.
The way to configure the JCA Resources service is very similar to the Database service:
jonas.service.resource.resources
property set the list of Resource Adapter to be used.
This is a coma-separated list of resource adapter configuration properties
file names (without the '.properties' suffix).
For each resource adapter a resource adapter configuration properties file must be provided to the JCA Resources service. This file reflects the values of all properties declared in the deployment descriptor for the resource adapter. See Using a JCA Resource Adapter with JOnAS for additional information.
Jadmin
.This is not a mandatory service
but if it is needed it must be launched first. There is no specific configuration for this service.
Jadmin
tool.
JOnAS since 2.5 version provides two implementations for this service: one for using Tomcat 3.3.x and
one for using Tomcat 4.0.3. Tomcat 4.0.3 is an implementation of the Java Servlet 2.3 and JSP 1.2 specifications, Tomcat 3.3 is an implementation of the Java Servlet 2.2 and JSP 1.1 specifications.
TOMCAT_HOME
and JAVA_HOME
must be set.
The jonas.service.tomcat.class
property in jonas.properties
file must be set to org.objectweb.jonas.tomcat.EmbeddedTomcatImpl33
.
the jonas.service.tomcat.args
property in jonas.properties
file may be
used to pass arguments to Tomcat when it starts, the syntax is the one of the script tomcat.sh
.
CATALINA_HOME
and CATALINA_BASE
must be set (see Tomcat 4.0.3 documentation).
The jonas.service.tomcat.class
property in jonas.properties
file must be set to org.objectweb.jonas.tomcat.EmbeddedTomcatImpl40
This is the default value for this property.
The only argument possible in jonas.service.tomcat.args
property is -debug
.
JETTY_HOME
must be set.
jetty
must be set in the jonas.services
property in the jonas.properties
file.
jetty.xml
found in JONAS_ROOT/config
directory. This file may be customized and its location may be changed. In this case the jonas.service.jetty.config
property of jonas.properties
file must be set with the absolute path name.
.war file
) must be installed, by default, under JONAS_ROOT/webapps
.
In order to be able to send or receive mails we need a mail factory. JOnAS provides two types of mail factories : javax.mail.Session
and javax.mail.internet.MimePartDataSource
.
MimePartDataSource
factories allow you to send mails with a subject, or recipients already set.
Mail factory objects must be configured accordingly to their type. The subsections below briefly explains how to configure a mail factory object,
in order to be able to run the SessionMailer
SessionBean and the MimePartDSMailer
SessionBean delivered with the platform.
The template MailSession1.properties file
supplied in the installation directory defines a mail factory of Session
type. The JNDI name of the mail factory object is mailSession_1
.
You must update this template with values proper to your installation.
See the section "Configuring a mail factory" for the list of available properties.
The template MailMimePartDS1.properties file
supplied in the installation directory defines a mail factory of MimePartDSMailer
type. The JNDI name of the mail factory object is mailMimePartDS_1
.
You must update this template with values proper to your installation.
You'll find in the section "Configuring a mail factory" the list of available properties.
Let's see before, how to configure JOnAS in order to create the mail factory objects you need.
In order for JOnAS to create mail factory objects,
you must name them. In the mailsb example, we defined 2 factories called
MailSession1 and MailMimePartDS1.
For each factory we provided a configuration file named with the name of the
factory and having the .properties extension (MailSession1.properties
for
the MailSession1 factory).
Also, the jonas.properties
file has to contain on the jonas.service.mail.factories
line the name of the defined factories:
jonas.service.mail.factories MailSession1,MailMimePartDS1
The fields are the following:
Required properties | mail.factory.name | JNDI name of the mail factory. |
mail.factory.type | The type of the factory. This property can be javax.mail.Session or
javax.mail.internet.MimePartDataSource .
|
Optional properties | |
Authentication properties | |
mail.authentication.username | Set the username for the authentication |
mail.authentication.password | Set the password for the authentication |
javax.mail.Session.properties(see JavaMail documentation for more information) | |
mail.authentication.username | Set the username for the authentication |
mail.authentication.password | Set the password for the authentication |
mail.debug | The initial debug mode. Default is false. |
mail.from |
The return email address of the current user, used by the
InternetAddress method getLocalAddress .
|
mail.mime.address.strict |
The MimeMessage class uses the InternetAddress method
parseHeader to parse headers in messages. This property
controls the strict flag passed to the parseHeader
method. The default is true.
|
mail.host |
The default host name of the mail server for both Stores and Transports.
Used if the mail.protocol.host property isn't set.
|
mail.store.protocol |
Specifies the default message access protocol. The
Session method getStore() returns a Store
object that implements this protocol. By default the first Store
provider in the configuration files is returned.
|
mail.transport.protocol |
Specifies the default message access protocol. The
Session method getTransport() returns a Transport
object that implements this protocol. By default the first Transport
provider in the configuration files is returned.
|
mail.user |
The default user name to use when connecting to the mail server.
Used if the mail.protocol.user property isn't set.
|
mail.<protocol>.class | Specifies the fully qualified class name of the provider for the specified protocol. Used in cases where more than one provider for a given protocol exists; this property can be used to specify which provider to use by default. The provider must still be listed in a configuration file. |
mail.<protocol>.host |
The host name of the mail server for the specified protocol.
Overrides the mail.host property.
|
mail.<protocol>.port | The port number of the mail server for the specified protocol. If not specified the protocol's default port number is used. |
mail.<protocol>.user |
The user name to use when connecting to mail servers
using the specified protocol.
Overrides the mail.user property.
|
MimePartDataSource properties (Only used if mail.factory.type is javax.mail.internet.MimePartDataSource) | |
mail.to | Set the list of primary recipients ("to") of the message |
mail.cc | Set the list of Carbon Copy recipients ("cc") of the message |
mail.bcc | Set the list of Blind Carbon Copy recipients ("bcc") of the message |
mail.subject | Set the subject of the message |