Hi Andy,
Can you give some more information about the wlpdropins folder in Cognos 10.2?
We have several java servlets that we have been running from the Cognos (webapps) tomcat application server in Cognos 10.1.1. These are simple java serlvets to extend some of the functionality of Cognos. All that is required is to update the web.xml file and then put the class files in the classes folder. This has worked great except now when we are testing for our move to 10.2.2, we find that they have changed the app server to IBM Liberty and a few of the servlets do not work anymore.
When I test the servlets outside of Cognos they work fine (ie: in MyEclipse/separate app server), but putting them in Cognos gives a nasty error:
exception javax.servlet.ServletException: Servlet execution threw an exception
root cause java.lang.LinkageError: loading constraint violation: loader "org/apache/catalina/loader/WebappClassLoader@db286ee8" previously initiated loading for a different type with name "javax/xml/soap/SOAPMessage" defined by loader "com/cognos/pogo/isolation/ParanoidClassLoader@a804e8d4
I am not sure how to solve this yet. I have tried switching from the default IBM Liberty profile to Tomcat in Cognos Configuration but I get the same error.
I'll include the routine that its dying on just in case there is someone that might know whats happening:
private boolean checkExecutePermission (String reportsearchpath, String appName, String logLevel)
{
BaseClass bc[] = null;
SearchPathMultipleObject spMulti = new SearchPathMultipleObject(reportsearchpath);
logDebugToFile(logLevel, appName + " spMulti = " + spMulti.get_value() );
try {
bc = cmService.query(spMulti, new PropEnum[] {PropEnum.user, PropEnum.userName, PropEnum.permissions}, new Sort[] {}, new QueryOptions());
for (int i = 0; i < bc.length; i++) {
for (int a = 0; a < bc.getPermissions().getValue().length; a++) {
if (bc.getPermissions().getValue()[a].toString().contains("execute")) {
return true;
}
}
}
} catch (Exception e) {
e.printStackTrace();
logErrorToFile(logLevel, appName + e.getMessage());
}
return false;
}
Maybe the wlpdropins folder is what is need. Please tell me more about this.
Thanks