java.lang.SecurityException in load balanced resin web server

We have a java web application deployed in a load balanced resin server. The java version is 1.5 .We are getting intermitently the following exception when we try to export things using aspose cells:

<!–[if gte mso 9]>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val=“Cambria Math”/>
<m:brkBin m:val=“before”/>
<m:brkBinSub m:val="–"/>
<m:smallFrac m:val=“off”/>
<m:dispDef/>
<m:lMargin m:val=“0”/>
<m:rMargin m:val=“0”/>
<m:defJc m:val=“centerGroup”/>
<m:wrapIndent m:val=“1440”/>
<m:intLim m:val=“subSup”/>
<m:naryLim m:val=“undOvr”/>
</m:mathPr></w:WordDocument>
<![endif]–><!–[if gte mso 10]>

/* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;}

<![endif]–>

java.lang.SecurityException: class "com.aspose.cells.Workbook"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:122)
at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1520)
at com.caucho.loader.DynamicClassLoader.findClassImpl(DynamicClassLoader.java:1387)
at com.caucho.loader.DynamicClassLoader.loadClassImpl(DynamicClassLoader.java:1287)
at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1218)
at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1202)
at com.asentinel.tem.action.actionext.invoice.ExportInvoiceAction.exportToExcel(ExportInvoiceAction.java:119)
at com.asentinel.tem.action.actionext.invoice.ExportInvoiceAction.perform(ExportInvoiceAction.java:56)
at com.asentinel.tem.action.controller.MainServlet.doPost(MainServlet.java:189)



Is there any way to fix this ? Thanks


Hi,


You may also need to include some additional libraries as mentioned in below note. If you have already included these jars or face the same issue after including them, then let us know. We will log an investigation for this issue. Thank you.

Note:

One thing may be notable for users especially for recent fixes: From V2.5.2 we needs some more libraries which are contained in the lib\ directory of the official release archive. If user updates later fixes from old versions or fixes prior to V2.5.2, they need to download the official release archive first to get those additinal libraries.

You can also download these additional libraries separately from the given link.

We indeed had 3 libraries missing: woodstox-core-asl-4.0.8.jar, stax2-api-3.0.2.jar, jsr173_1.0_api.jar. We added them and restarted the web server.

Immediately after the first web server restart, the export would not work, but after restarting the applicaton inside the web server, it functioned correctly.

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

It still appears to be inconsistent after web server restart even if it works now most of the times. We do not want to have to do additional operations like restarting the web application to get it working consistently.

Do you have any other suggestions which we can look into to make sure it does work after each web server restart? We are thinking that maybe the order the jar files are loaded by the web server may be important.

Thank you.

Hi,


Thank you for providing us the feedback.
I have logged an investigation for your issue under TicketID CELLSJAVA-27361. Soon we will get back to you on this.

Hi,

Commonly such kind of issue was caused by the truth that user created/used other classes that in the same package of cells(com.aspose.cells…) but out of the aspose-cellsXXX.jar. User should avoid to define their own classes in the package and sub-packages of com.aspose.cells. Also user should not extract or re-archive the aspose-cellsXXX.jar.

Please make sure that you did not broke those rules. And it is strange that your application can work some times and not work for some other times. We agree that maybe there are problems with your classes/libraries settings. But we are afraid we cannot help further because we don’t know enough details about your application/enviornment and cannot test it. Maybe you can create standalone java application using the same business logic of your web application to test whether it can work. If the standalone java application cannot work too, it will be easier for you and us to test and trace the issue

We have verified and there is no broken rule from what you mentioned.

We are still getting this issue itermitently on different application instances after resin (app server) is restarted.

We are thinking the issue may be that the library resides into each instance WEB-INF/lib directory and there may be possible conflicts because of that. We want to move the libraries to the resin/lib directory so the same library files will be shared by all the instances. If the libraries will reside in the main lib directory of the application server (resin/lib) where should the license file reside?

Thank you.

Hi,


The usage of license file is
to build one InputStream(such as FileInputStream) and pass the
InputStream to License.setLicense() method. So the license file can be
put into any place that user’s web application can access in the same
way as common file.

Are you sure you want to delete ?
                                    <br>

We are still having the issue. The library will initialize fine and after some time the issue will show up again on different instances. Re-copying the license and the library and restarting the specific application having issues resolves the problem for some time. Then the issue shows again after some time (couple of days to couple of weeks later). It appears that the license info is lost at times and apparently the most you use the library the more frequently this happens. We will be trying more things, but do you have any other suggestion? Thanks.