I was working on an ejb module that takes input from a GUI of a Telco Inventory Product, validates it and returns a warning message
or let it pass through.
It uses a session Bean. The ear bundled few jars(platform specific) in APP-INF/lib (as we deploy in weblogic).
The ear deploys fine. When it gets triggered(By the platform) the below problem is coming:

at com.LLL.middle.logic.EquipmentLogic.add(EquipmentL ogic.java:147)
java.rmi.UnmarshalException: com.LLL.middle.helper.PrivilegeChecker; local class incompatible: stream classdesc serialVersionUID = -4287219209967398851, local class
serialVersionUID = -2800810513783820875; nested exception is:
java.io.InvalidClassException: com.LLL.middle.helper.PrivilegeChecker; local class incompatible: stream classdesc serialVersionUID = - 4287219209967398851, local class serialVersionUID = -2800810513783820875

The above class file is from one of the platform specific jar. The bundled jar is the updated version. Although there is no serial version UID in the class file. But I can't change it as it is product Code.
Also I have other ears deployed using the same jars which are working fine.
In the session bean data has been read from a Properties file which could be seen isValidVendor method below.

Please suggest me what could be the possible reasons or way forward to resolve it within the limitation (I can't change platform specific code)
Thanks a lot for your help in advance
Session Bean Code:

public class EquipmentValidatorSessionBean implements ValidationPlugin,
SessionBean {
private static final long serialVersionUID = 1L;

public ValidationStatus validateInsert(ClientSession session,
XngObject mtObject) {

ValidationStatus rslt = null;
try {
// We need the object in a form we can work with, so create
// an ASI object.
DataObjectFactory objFactory = ASIFactory.newDataObjectFactory(DataForms.DIRECT);
Container container = null;

try {
container = (Container) objFactory.newDataObject(
CoreDataObjects.CONTAINER, mtObject);
} catch (Exception e) {
System.out.println("This is a shelf");
return (ValidationStatus.newOKStatus());

String vendorName = container.getVendor();
String categoryName = container.getType();
String siteName = container.getSiteHumId();

ServiceFactory serviceFactory = ASIFactory.newServiceFactory(Protocols.IIOP, objFactory);
SiteService siteService = (SiteService) serviceFactory.newService(CoreServices.CONTAINER);

DataObject[] sites = siteService.query("select * " +
"from SITE_INST S, site_inst s1 " +
"and s.PARENT_SITE_INST_ID = s1.site_inst_id " +
"and s.site_hum_id = '"+ siteName +"'");

System.out.println(((sites == null) ? 0 : sites.length) + " sites were returned.");

if( sites != null )
if (this.isValidVendor(vendorName) && this.isValidCategory(categoryName)) {

System.out.println("Calling ValidateInsert()");
System.out.println("Equipment Name from Client:"+ container.getDescr());

// First Time Call
if (!container.isConfirmedCustom()) {

String mess = "Your Equipment Name will be Changed according to Name Generator Rule for Equipment(Container)";
rslt = ValidationStatus.newWarningStatus(mess);
objFactory.setPluginResult(rslt, container);

} else {

NameGenerationClient client = new NameGenerationClient();
String rdbname = session.getAdminDatabaseName();
String subSite = container.getSiteHumId();
String vendor = container.getVendor();
String technology = container.getType();

String name = client.getEquipmentName(rdbname, subSite,
vendor, technology);
rslt = ValidationStatus.newOKStatus();
objFactory.setPluginResult(rslt, container);
String mess = "Please enter a sub site to create a Equipment(Container)";
rslt = ValidationStatus.newWarningStatus(mess);

} catch (Exception e) {
// Error processing goes here
return (ValidationStatus.newFailureStatus(e.toString()));
return (rslt);

private Boolean isValidVendor(String vendorName) {
String key = "VendorName";
String[] temp;

Properties properties = new Properties();
String val = null;
try {
InputStream in = getClass().getResourceAsStream(
} catch (IOException e) {

if (properties.containsKey(key))
val = properties.getProperty(key);

temp = val.split(",");

for (int i = 0; i < temp.length; i++) {
if (temp.equals(vendorName)) {
return true;
return false;