3

I am trying to create a folder within web server using Java File handling APIs in my RESTFul web service developed using JERSEY. According to my understanding, when I target "xyz.com" , it by default points out /home/xyz/public_html/ in my server.

So when I try to create a folder as follows

        String appFolderPath = "/xyz.com/appFolder/";
    File userNameFolder = new File(appFolderPath + userName);
    if (!userNameFolder.exists()) {
        folderPath = userNameFolder.mkdir();
    }

The above code fails, I am not getting any exception, and no folder is created. How exactly I suppose to do it ? How to give path for public_html/ folder ?

Another point is, is it not happening because of permission issue ? , I actually tried another way , I manually created /appFolder under public_html/ and give full read write permission to that folder, but still I couldn't create any folder within that using above code.

Please let me know how to achieve it ? Any Sample code ? Also if possible let me know if JERSEY does give me APIs to make it simple ?

2 Answers 2

3

To point to public web directory use

ServletContext context = request.getServletContext();
String path = context.getRealPath("/");

and append your path to the path (above resolved)

Sign up to request clarification or add additional context in comments.

1 Comment

Since I am using jersey and developing web service, to get servlet context we have to add a parameter as follows stackoverflow.com/questions/11831042/…
0

According to my understanding, when I target "xyz.com" , it by default points out /home/xyz/public_html/ in my server.

What makes you think so? You're operating files in the code snippet given, so your path means /xyz.com/appFolder/ and nothing more. And it's very likely you're facing a permission issue trying to create folders like this.

As for absense of exception, that's a design feature of Java file API not to throw exceptions on certain failures, but rather return erroneous error codes. Check what is returned by mkdir() call and you'll find false there, as a signal of failure.

6 Comments

At least is it correct to refer a folder as "/xyz.com/appFolder/" ?
yes it is returning false for mkdir(). What might be the possible cause ? is it a permission issue? if that is the case to what folder I have to give read write access? definitely I can not give it for public_html folder.
First try to use 'mkdirs()' instead of 'mkdir()'. If it won't help, then you're facing a persimmion issue. To find out the folder to grant permission on, execute userNameFolder.getAbsolutePath().
I used both way, using mkdirs() and using getAbsolutePath() , getAbsolutePath() returning "xyz.com/appFolder" which is expected. But still it is mkdirs() returning false.
I am not even getting securityException .
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.