在tomcat 6上部署Apache Archiva

时间:2013-06-11 14:38:39

标签: deployment tomcat6 archiva

我正在尝试在我的服务器上部署Apache Archiva,但它一直都失败了。

规格:

os: ubuntu 10.04 
tomcat: Apache Tomcat/6.0.24
jvm: 1.6.0_27-b27

$CATALINA_HOME : /usr/share/tomcat6
$CATALINA_BASE : /var/lib/tomcat6
$CATALINA_OPTS : "-Dappserver.home=$CATALINA_HOME -Dappserver.base=$CATALINA_BASE"

path to lib : $CATALINA_BASE/common/lib

#java -version
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.3) (6b27-1.12.3-0ubuntu1~10.04.1)
OpenJDK Client VM (build 20.0-b12, mixed mode, sharing)

Tomcat本身正在运行。我按照此page上的说明,将所有必要的jar复制到lib(上面指定的位置),在archiva.xml中使用该内容创建了/var/lib/tomcat6/conf/Catalina/localhost/

<Context path="/archiva" docBase="/var/lib/tomcat6/archiva/apache-archiva-1.4-M4.war">

  <Resource name="jdbc/users"
        auth="Container"
        type="javax.sql.DataSource"
        username="philipp"
        password="xxx"
        driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
        url="jdbc:derby:////localhost:1527/archivausers;create=true" />

  <Resource name="jdbc/archiva"
        auth="Container"
        type="javax.sql.DataSource"
        username="philipp"
        password="xxx"
        driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
        url="jdbc:derby://localhost:1527/archivadata;create=true" />

  <Resource name="mail/Session"
        auth="Container"
        type="javax.mail.Session"
        mail.smtp.host="localhost"/>
</Context>

在tomcat管理器中单击»start«后:FAIL - Application at context path /archiva could not be started

catalina.out上的最后一行是:

SCHWERWIEGEND: A web application created a ThreadLocal with key of type[java.lang.ThreadLocal] (value [java.lang.ThreadLocal@69bf9]) and a value of type [org.apache.logging.log4j.core.impl.Log4jLogEvent] (value [Logger=org.springframework.web.context.ContextLoader Level=ERROR Message=Context initialization failed]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed. 11.06.2013 16:29:30 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SCHWERWIEGEND: A web application created a ThreadLocal with key of type [null] (value [org.apache.logging.log4j.spi.DefaultThreadContextMap$1@1ea380c]) and a value of type [null] (value [null]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.

我或多或少地想到了我想到的一切,但总是失败!

任何想法?

1 个答案:

答案 0 :(得分:4)

由于我可以设法让它运行,我认为对其他人分享我采取的步骤可能会有用。这些描述假设一个人已经阅读了archiva的官方installation Instructions,并且应该是一种额外的解释,因为官方文档可能更冗长。

首先我下载了​​“war”并将其存储在/var/lib/tomcat6/archiva中,这定义了起点。

<强> 1。数据库:

在官方instruction中,要求我们下载derby.jarderbytools.jar以将其保存在$CATALINA_HOME/lib(在我的情况下指向/usr/share/tomcat6/lib)中使文件可用于在此tomcat上运行的所有Web应用程序。在我的研究中,我来到了apache derby project,在那里我也找到了这个命令:

sudo apt-get install sun-javadb-core sun-javadb-client

只安装了derby db(在我的情况下,我必须在/etc/apt/sources.list中添加»multiverse«在一个来源)。之后我跑了:

sudo ln -s /usr/share/javadb/lib/*.jar -t /usr/share/tomcat6/lib
是什么将所有需要的derby-jar链接到tomcat lib(可能在那里不需要一些)。之后我在db中创建了目录/var/lib/tomcat6/archiva并将其所有者和组更改为tomcat6,但是由您决定存储数据库文件的位置,但重要的是不要为所需的两个数据库创建两个子目录,namly:usersarchiva,在该目录中。

<强> 2。邮件

我按照说明操作并将mail.jaractivation.jar复制到了tomcats库。

第3。 archiva主目录

阻止archiva运行的错误之一是它试图在/usr/share/tomcat6/.m2中创建主目录,但这导致权限冲突,因此我创建了该目录并将组和所有者更改为tomcat6。 / p>

最后但并非最不重要我关注位于archiva.xml的{​​{1}}。由于应该替换的路径未标记为“粗体”,因此很容易监督它们,所以我尝试在此处使用/var/lib/conf/Catalina/localhost指出:

${path}

这应该是一切,我希望我没有忘记任何事情。在<Context path="/archiva" docBase="${path to the archiva war archive here}"> <Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource" username="sa" password="" driverClassName="org.apache.derby.jdbc.EmbeddedDriver" url="jdbc:derby:${path to the db folder}/users;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 db folder}/archiva;create=true" /> <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="localhost"/> </Context> 中搜索错误日志是一种毫无意义的事情,因为那里的消息没有描述明确的问题,因此我想建议在同一目录中读取catalina.out,其中我可以找到调试信息更有用。

p.s。:安装Archiva之后,为Apache Continuum做了同样的步骤,只是替换了文件夹和文件名,这也导致了正在运行的安装。

快乐安装,欢呼!