Installing Apache Archiva as a Web Application

Archiva can be deployed as a web application into any Java EE application server. This document will show an example of doing so with Tomcat 5.5.

To deploy Archiva on Tomcat 5.5

  • Create a directory in tomcat called archiva, at the same level as bin, conf, logs and the others.
  • Copy the war file into the new directory
  • Create a conf/Catalina/localhost/archiva.xml file with the following data (replace the database paths with a suitable location):
     <?xml version="1.0" encoding="UTF-8"?>
     <Context path="/archiva"
              docBase="${catalina.home}/archiva/archiva-webapp-1.0.war">
    
     <Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource"
               username="sa"
               password=""
               driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
               url="jdbc:derby:/path/to/database/archiva;create=true" />
    
     <Resource name="jdbc/archiva" auth="Container" type="javax.sql.DataSource"
               username="sa"
               password=""
               driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
               url="jdbc:derby:/path/to/database/archiva;create=true" />
    
     <Resource name="mail/Session" auth="Container"
                type="javax.mail.Session"
                mail.smtp.host="localhost"/>
     </Context>
  • Note: Tomcat 5.5.20 and 5.5.23 are missing MailSessionFactory and a few other classes. JNDI mail sessions will not work. Use Tomcat 5.5.17 instead, or see Bug 40668 for a workaround.
  • Install derby-10.1.3.1.jar into the Tomcat common/lib. This is required since the data sources are instantiated before the web application.

When you first start Archiva, you will see an Exception that schema SA does not exist - however it doesn't cause a problem. If you use a username other than 'sa', such as 'archiva', then you seem to get the same error but Tomcat fails to start the context and you have to shutdown and restart again.

Archiva Configuration

Archiva is configured using the ~/.m2/archiva.xml configuration file by default when using a Java EE application server.

Upgrading Archiva

To upgrade the Archiva web application, simply replace the web application with an alternative. Since the database and configuration files are stored externally to the application, no further maintainance is needed.

For general information about upgrading Archiva, see the relevant section in the Installing standalone guide.

Configuring and Running Archiva

Once Archiva is running, it is configured in the same way as the standalone instance. See the quick start guide for more information.