FishEye as non-root user

I'm trying to get FishEye running on CentOS 5.9 x64 as a non-root user. I'm able to run the server properly as root, which is clearly not desireable in terms of security. So, I have given a different user access to the FishEye install directory and the FishEye data directory, however this user is unable to start FishEye. Whenever I try to do a restore, I get the following error:

jira@serv [/sw/fecru-2.9.1]# bin/fisheyectl.sh restore -f /home/jira/FeCru-backup.zip --username username --password password --dbtype mysql --jdbcurl jdbc:mysql://localhost:3306/db_name
ERROR: problem invoking main class: com.cenqua.fisheye.ctl.Restore
java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlString
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.cenqua.crucible.hibernate.DBType.<clinit>(DBType.java:31)
at com.cenqua.fisheye.ctl.Restore.<clinit>(Restore.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:98)
at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:41)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlString
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 19 more

This same command works perfectly fine when I am root. The permessions should be setup properly, as I am able to open all of the JAR files in the /sw/fecru-2.9.1/lib directory. Is there something else that this user needs to have access to in order to run FishEye?

2 answers

1 accepted

This widget could not be displayed.

The problem in this case was that the user that I had created was only able to open 100 simultaneous files at the same time(ulimit -n). Since there are ~200 jar files in the lib directory that FishEye needs, it could never load all of the jar files that it needed. I increased this limit to 1000 so that this particular error does not happen anymore.

This widget could not be displayed.

Can you make sure change the ownership of those 2 directories with a -R option? Do it after you stop Fisheye and then start it as the new user.

Tried that, still the same error. I even tried permissions of 777, no change at all.

Suggest an answer

Log in or Sign up to answer
Atlassian Summit 2018

Meet the community IRL

Atlassian Summit is an excellent opportunity for in-person support, training, and networking.

Learn more
Community showcase
Published 55m ago in Bitbucket

Branch Management with Bitbucket

As a project manager, I have discovered that different developers want to bring their previous branching method with them when they join the team. Some developers are used to performing individual wo...

15 views 0 3
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you