Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

FishEye as non-root user

Robert Middleton September 15, 2013

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

0 votes
Answer accepted
Robert Middleton October 1, 2013

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.

0 votes
Jobin Kuruvilla [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 15, 2013

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.

Robert Middleton September 15, 2013

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
TAGS
AUG Leaders

Atlassian Community Events