I’m trying to use Aspose.Words within a java web application but it is not finding the license file Aspose.Words.lic.
I have followed the licensing code examples in the Aspose help and have put my Aspose.Words.lic file into the same dir as my Aspose.Words.jdk15.jar, i.e. the WEB-INF/lib directory of my web application.
If I use no path in the call to license.setLicense(“Aspose.Words.lic”) then it fails. If I put in an absolute path, then it works fine. But I can’t use an absolute path because I don’t know the location the app will be installed in.
Here’s my code:
com.aspose.words.License license = new com.aspose.words.License();
try {
log.debug(“Applying license for Aspose.Words”);
license.setLicense(“Aspose.Words.lic”);
log.debug(“Successfully applied license for Aspose.Words”);
}
catch (Exception e) {
log.error("There was an error applying the license for Aspose.Words: " + e);
}
…
…
Document doc = new Document(… … … );
The exception code is always hit.
After some more investigation using the SysInternals File Monitor on Windows 2000, the Aspose.Words is firstly looking in the current directory - which is the main directory of Tomcat, and this fails because the license is below that, within my web application.
Secondly, Aspose.Words checks the WEB-INF/lib directory - but if the path contains a space, this space appears to be translated to a %20 by Aspose.Words (i.e. C:\Program%20Files…) which fails with a Path Not Found error.
I’ve had this problem on both Windows 2000 Pro and Mandriva Linux 2007.1 using both Jetty and Tomcat as servlet containers. I’m using Sun Java 5 and 6.
Do you have any suggestions?
Thanks,
Paul
Hi, Paul,
Yes, it’s my very old todo to change from File to URL when loading license by name… I have raised the todo’s level to fix it in a nearest release.
For workaround you can use code from ours Web demo project (demos\Aspose.Words.Demos.Web\src\DemoServlet.java):
String webAppDir = this.getServletContext().getRealPath("/");
File licenseFile = new File(webAppDir, "WEB-INF/Aspose.Words.Java.lic");
license.setLicense(licenseFile.getAbsolutePath());
Best regards,
Hi Konstantin,
Thanks for your help - I also arrived at a similar workaround.
By the way, for this to work with the Aspose library in the lib directory, the code needs to be like this:
String webAppDir = this.getServletContext().getRealPath("/");
File licenseFile = new File(webAppDir, “WEB-INF/lib/Aspose.Words.lic”);
license.setLicense(licenseFile.getAbsolutePath());
(note the change to the license file name and path)
Best wishes,
Paul