WAR Deployment Errors

When I deploy and attempt to run it the project, it doesn’t work. I get this error:

Jun 23, 2014 3:13:19 AM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /cstest threw load() exception
java.io.IOException: Access is denied
                at java.io.WinNTFileSystem.createFileExclusively(Native Method)
                at java.io.File.createNewFile(File.java:1006)
                at com.servoy.j2db.server.servlets.WarClientServlet.init(WarClientServlet.java:60)
                at javax.servlet.GenericServlet.init(GenericServlet.java:158)
                at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1279)
                at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1192)
                at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
                at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5210)
                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5493)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
                at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
                at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
                at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073)
                at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
                at java.util.concurrent.FutureTask.run(FutureTask.java:262)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                at java.lang.Thread.run(Thread.java:744)

I’m uploading a cstest.war from a Servoy 7.4.1 version to an Apache Tomcat 7.0.52 server The com.servoy.j2db.server.servlets.WarClientServlet class is obfuscated, so its hard to tell what’s its trying to do there. This is Azure’s PaaS, so it’s a pre-configured Tomcat server container that you just startup and run on their cloud (not one I built from the ground up). So, I’m expecting Servoy wants write access somewhere that Azure isn’t allowing. Maybe I can override some environmental variables or something?

I think what it’s trying to write is the .servoy folder. The real question of course is, where does it want to write it. Maybe you can find out using Process Monitor.
We had experiences with this on a very tighly configured server (however not WAR deployment), where creating the .servoy folder manually in the expected place fixed the problem.

From stack its hard to tell what/where is trying to write, but an readonly location might be due to tomcat install in “program files”?
if so, its not nice war wants to write there…please file a case then.

Its a pre-built tomcat container, so I don’t have any control of where it installs to. Its created using Micrsoft Azure’s cloud, using: New->Compute->Website->From Gallery->Apache Tomcat 7
Then Azure spins up your Tomcat instance, and you get all the PaaS benefits.

I created a case: https://support.servoy.com/browse/SVY-6767

PS. When I looked at WarClientServlet.java, I can see it attempting to write to file, but the code obfuscated, so I can’t see exactly where its trying to write.