Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!

Deniz Kaan

Greenhorn
+ Follow
since Nov 12, 2019
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Deniz Kaan

Hi Tim,

I'll do so - thanks a lot for all the hints you provided me with - I think the solution is not far away ;-)

Cheers,

Deniz
10 months ago
Hi Tim,

I validated that matter - Tomcat tries to write into f:\ ("root directory") - that is why it stops that task - tomadmin has no write permissions to f:\ - access is denied... See attached the evidence we got by using Process Explorer.

Unfortunately we cannot provide Tomcat with write permissions to f:\  - it seems, that the only way is to find out how we can force Tomcat not to write to f:\ but into the Tomcat-directory or one its subdirectories.

However, now I am going to study the relevant documentation of Tomcat to understand where we can set that path - it seems that there is another parameter which might be used additionally to -djava.io.temp and $CATALINA_HOME...

If you have any further insights into that matter I would really appreciate all details....

Kind regards,

Deniz
10 months ago
Hi Tim,

Thanks a lot for your prompt response.

Today, we had the chance to better understand the problem.

It seems that Tomcat (sorry for the camel-case I used in my posting on yesterday - really painful for me ;-) ) tries to write that file temporarily on a different path to that it has no write permission and subsequently moves it to the right path. I need to double-check that matter - after I am sure probably on tomorrow I will confirm the facts. However, the problem is solved by granting additional write permissions for tomadmin to that location.

Kind regards,

Deniz
10 months ago
Hi everybody,

today I installed TomCat in Version 9.0.27 on a Windows Server 2016.

I get the following error log when I try to start a specific application:
SEVERE [https-openssl-nio-10110-exec-5] org.apache.catalina.core.StandardHostValve.invoke Exception Processing /application1/dispatch java.lang.UnsatisfiedLinkError: Failed to create temporary file for /com/sun/jna/win32-x86-64/jnidispatch.dll library: Access is denied

Please see below for more details from the log file.

My understanding is, that TomCat cannot write into the relevant temp-directory which is within the path f:\appexec\tomcat\inst\tom01\temp (owner = tomadmin with read and write permission). In Windows-Registry, DJava.io.temp is set to the mentioned path.

The question is, why tomcat cannot write the relevant dll into the path of which tomadmin is the owner with permission to read and to write.

My suspicion is that one of the following 2 aspects might be the "problem":

1. Tomcat tries prior to the extraction of the dll to the above mentioned path to temporarily extract the dll to another path on that tomadmin has no permission and stops after it fails. Is there another temp directory in that TomCat tries to write temporarily specific files? How could I find that out - is there a way to increase the level of detail in the TomCat log files (specific debug-options, etc.)?

2. The permissions are ok. The problem is that in the context of the extraction of the DLL-file another process (e.g. malware-detector, windows defender, etc.) blocks TomCat so that TomCat cannot write the dll into the above mentioned path. How could I figure out whether there is such a process without trying to switch off all the security related mechanisms on the Windows Server?

Many thanks in advance!

Kind regards,

XDev

TomCat Log:

SEVERE [https-openssl-nio-10110-exec-5] org.apache.catalina.core.StandardHostValve.invoke Exception Processing /application1/dispatch java.lang.UnsatisfiedLinkError: Failed to create temporary file for /com/sun/jna/win32-x86-64/jnidispatch.dll library: Access is denied
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:962
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922)
at com.sun.jna.Native.<clinit>(Native.java:190)
at com.sun.jna.Pointer.<clinit>(Pointer.java:54)
at com.sun.jna.Structure.<clinit>(Structure.java:2130)
at waffle.windows.auth.impl.WindowsCredentialsHandleImpl.initialize(WindowsCredentialsHandleImpl.java:79)
at waffle.windows.auth.impl.WindowsAuthProviderImpl.acceptSecurityToken(WindowsAuthProviderImpl.java:116)
at waffle.apache.NegotiateAuthenticator.authenticate(NegotiateAuthenticator.java:99)
at waffle.apache.NegotiateAuthenticator.doAuthenticate(NegotiateAuthenticator.java:182)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:608)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
10 months ago