Posted: 17 Jun 2016 13:15 EDT Last activity: 18 Nov 2016 9:23 EST
Unable to find Spring classes from Pega database
We are trying to set up shared library for Pega 7.2 in Websphere 8.x. We created the shared library with custom jars and have referenced the shared library in the classloader. We have updated the DSS with the shared library path. We are running into issues when trying to test application that uses the custom jar in the shared location. Its able to find the custom java class but failing to find a spring class which is in the pega database(pr_engineclasses). Below is the stack trace. Any thoughts on why it is not able to find the class from database?
You are on the right track, for 3rd party jars, please test the classloading using a standalone java program (use Class.forName("org.springframework.context.support.ClassPathXmlApplicationContext") in your program). Also, if you use the shared lib approach, you should put all custom jars to shared lib to test instead of importing them to pega db (doing both would be a problem for the same jar).
PersistenceServiceFactory is our custom class in a Persistence jar located in the shared lib which is dependent on the above spring class which happens to be in the pr_engineclasses table in the spring context jar. When we lookup this java class from SMA via Etier Runtime, it is pointing to pegajdbc://xxxxxxxxxx:0/spring-context.jar which I am sure is coming from pega database but somehow it is giving class not found exception when trying to test our custom Persistence jar
Pega I believe has about 6 spring related jar in the database. So, we have only put other spring jars other than these 6 in the shared lib along with our custom jars.
One thing what we have noticed is pega loading two classpaths pegajdbc://xxxxxxxxxx:0 and pegajdbc://xxxxxxxxxx:1. And, I believe all pega jars are in loaded into the 0 classpath and we wonder if the application is looking into classpath 1 and not able to find the jars. The server startup log does say it is using genClassPath: pegajdbc://xxxxxxxxxx:1. Not sure how to go about it
try put all your jars (including dependent jars) at the share lib level (after testing standalone program successfully). Looks like your version of those 6 jars are not compatible with those from pega.