2013-06-11 84 views
3

我試圖在我的服務器上部署Apache Archiva,但它只是一直失敗。在tomcat 6上部署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本身是啓動和運行。我跟着到lib(上述指定位置)本page的指示,複製所有必要的罐子,在/var/lib/tomcat6/conf/Catalina/localhost/與內容創建的archiva.xml

<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管理»開始«點擊後: 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 [[email protected]]) 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 [[email protected]]) 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.

我想或多或少EV我想到的是什麼,但總是失敗!

任何想法?

+0

需要更多來自日誌的行來識別問題。 –

+0

我可以設法讓它運行。我必須處理幾個問題,現在我正要寫一個解釋的答案。不過謝謝! – philipp

回答

4

因爲我可以設法讓它運行,我認爲這可能對其他人分享我已採取的步驟有用。這些描述假定已經閱讀了官方檔案installation Instructions,並且應該是一種額外的解釋,因爲官方文檔可能會更冗長一些。

首先我下載了​​»war«並將其存儲在/var/lib/tomcat6/archiva中,這就定義了出發點。

1.數據庫:

在官方instruction一個被要求下載derby.jarderbytools.jar將它們保存在$CATALINA_HOME/lib(在我的情況指向/usr/share/tomcat6/lib),使可用於所有Web應用程序正在運行的文件在這個tomcat上。在我的研究,我走了過來apache derby project,我也發現了這個命令:

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

剛剛安裝德比分貝(在我的情況,我不得不在/etc/apt/sources.list在一個源的添加»多元宇宙«)。之後我運行:

sudo ln -s /usr/share/javadb/lib/*.jar -t /usr/share/tomcat6/lib 

什麼將所有需要的derby-jar鏈接到tomcat lib(可能有些不是那裏需要的)。從那以後,我創建的目錄db/var/lib/tomcat6/archiva,改變它的主人和組的Tomcat6,但它是由你要存儲數據庫文件,但不能創建兩個子目錄兩個需要的數據庫是非常重要的,該目錄內的命令:usersarchiva

2.郵件

在那裏,我遵循的指示和複製mail.jaractivation.jar到雄貓庫。

3。archiv主目錄

阻止archiva運行的錯誤之一是它試圖在/usr/share/tomcat6/.m2中創建主目錄,但導致權限衝突,因此我創建了該目錄並將組和主目錄更改爲tomcat6。

最後但並非最不重要我關心archiva.xml,位於/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的錯誤日誌是一種沒有意義的,因爲其中的消息沒有描述明確的問題,因此我想建議在同一目錄中閱讀localhost.${date}.log,其中我可以找到更有用的調試信息。

p.s .: Archiva安裝完成後,Apache Continuum完成了相同的步驟,只是替換文件夾和文件名,導致了正在運行的安裝。

快樂安裝,歡呼!

+0

這非常有幫助,謝謝!在我的情況下,我還需要make和chown目錄/ var/lib/tomcat6/data和/ var/lib/tomcat6/repositories。這是在archiva-2.2.1的ubuntu-14.04上。 –