When trying to deploy the Gitbucket project into wildfly I go tthe following error message:
WARN [org.jboss.modules] (ServerService Thread Pool -- 81) Failed to define class liquibase.serializer.core.yaml.YamlSerializer$LiquibaseRepresenter in Module "deployment.gitbucket.war:main" from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link liquibase/serializer/core/yaml/YamlSerializer$LiquibaseRepresenter (Module "deployment.gitbucket.war:main" from Service Module Loader): org/yaml/snakeyaml/representer/Representer ...
This is a known issue and discussed here.
You can fix it if you add the file ‘jboss-deployment-structure.xml’ into the WEB-INF/ folder with the following content:
<jboss-deployment-structure> <deployment> <dependencies> <system export="true"> <paths> <path name="com/sun/net/ssl/internal/ssl" /> <path name="com/sun/net/ssl" /> </paths> </system> <!-- add snakeyaml dependency --> <module name="org.yaml.snakeyaml"/> </dependencies> </deployment> </jboss-deployment-structure>
How to install:
The following is a short install guide how to modify the gitbucket.war downloaded form the project release page:
1.) Download latest version from release page:
wget https://github.com/gitbucket/gitbucket/releases/download/4.7.1/gitbucket.war
change the version if needed
2.) unzip the war file
unzip gitbucket.war -d tmp/gitbucket.war
3.) create the ‘jboss-deployment-structure.xml’ file and add the content as explained above. Than copy the file into the WEB-INF folder
cp jboss-deployment-structure.xml /tmp/gitbucket.war/WEB-INF/
4.) create the doDeploy file
touch tmp/gitbucket.war/gitbucket.war.dodeploy
5.) start deployment by moving the folder to the wildfly deploy directory
cd tmp/ mv gitbucket.war /opt/wildfly/standalone/deployments/
Install Script
You can use also my install script from here to install gitbucket on Wildfly 9.x & 10.x under Linux.
/bin/bash wildfly-install.sh [INSTALLDIR] [GITBUCKET-VERSION]
You can specify the install directory of your wilfly installation and the gitbucket version.
Example:
/bin/bash wildfly-install.sh [INSTALLDIR] [GITBUCKET-VERSION]
Note: The script must be run as root. The script assumes that wildfly is running with the user ‘wildfly’. You can change this in your script if needed.