On Microsoft Windows servers, Apache portable runtime (APR) libraries will fail to load with User Account Control (UAC) enabled. After installing the libraries, an administrator user will need to right-click the JBoss directory and set "Full control" to "Allow" for the desired user in the Properties -> Security tab. This will correct the access rights for UAC.
Windows Server 2008 R2
Affects: Release Notes
I did not manage to make EAP6 CR1 to load libs in *C:\tmp\jboss-eap-6.0\modules\org\jboss\as\web\main\lib\win-x86_64* under a non-Administrator user and with UAC in place.
When I switched to a user granted with Administrator rights + I disabled UAC ([DisableUACUtility|http://www.disableuac.com/] ), natives were loaded with no problem.
(!) We must note it in the release notes :-(
According to some windows-skilled guys, this is really weird. I will try to confirm it on another machine.
Have you used cygwin's unzip to uncompress the archive? It sets some weird security settings
Release Notes Docs Status: Added: Not Yet Documented
Affects: Added: Release Notes
Release Notes Docs Status: Removed: Not Yet Documented Added: Documented as Known Issue
Release Notes Text: Added: On Windows servers, Apache portable runtime (APR) libraries will fail to load unless a user with administration rights is being used with User Account Control (UAC) disabled.
Writer: Added: tomwells
Release Notes Docs Status: Removed: Documented as Known Issue
Writer: Removed: tomwells
Release Notes Text: Removed: On Windows servers, Apache portable runtime (APR) libraries will fail to load unless a user with administration rights is being used with User Account Control (UAC) disabled.
Docs QE Status: Removed: NEW
I changed the Release Notes Flag to "?" as it needs further work before being published.
Michal, Has there been any movement on this issue?
Did this turn out to be a problem with Cygwin's unzipper permissions or something else?
To complete the release note we need info about the cause of the problem and how it was fixed (or a workaround.
Setting for exclusion from 6.1.1 Release notes and removing NEEDINFO request.
I reproduced this with:
- EAP 6.1.1
- Java 1.7.0_21 (64 bit)
- Windows 2008 R2
- UAC default
- a simple user which does not belong to the Administrator group
- unzipped with "winrar"
Enabled "native" on the web subsystem and at startup I got:
12:51:23,286 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.web.connector.http
: org.jboss.msc.service.StartException in service jboss.web.connector.http: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.4.GA-redhat-1.j
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_21]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_21]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.tomcat.jni.OS
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-r
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.j
... 3 more
Next I right-clicked my JBoss directory (and repeated for Java directory) and in the properties, security tab, set "Full control" to "Allow" for my user.
Starting JBoss now works just fine; I double checked with sysinternals "Process Explorer" and the dll's were loaded indeed.
I am closing this BZ because this issues was fixed by proper documentation already.