NB: the following issue only happens with ObjectDB, it does not happen with EclipseLink.
Glassfish3.0.1
objectdb-2.2.5_10
JavaEE6 web app
The error reports as:
javax.servlet.ServletException: Annotated methods must follow the JavaBeans naming convention. __odbHidden_getWidthPxSideBarLeft
Where getWidthPxSideBarLeft() is an annotated getter of an entity ViewConfiguration:
private int widthPxSideBarLeft = 250;
@Min(150)
@Max(400)
public int getWidthPxSideBarLeft() {
return widthPxSideBarLeft;
}
public void setWidthPxSideBarLeft(int widthPxSideBarLeft) {
this.widthPxSideBarLeft = widthPxSideBarLeft;
}
It appears in part of a JSF template with dynamic CSS style parameters:
style="min-width:#{viewConfigurationManager.viewConfiguration.widthPxSideBarLeft}px"
Where ViewConfigurationManager is a @SessionScoped @ManagedBean backing bean that pulls the 1st (default) ViewConfiguration object via a @Stateless facade session bean using em.find(entityClass, id).
The strange thing is that it works perfectly fine for all JSF pages, I can move from page to page each with both a "main" h:form and a "secondary" h:form in the sidebar (see FYI only attached XHTML composite expertise_level.xhtml), until i submit the "secondary" h:form in the sidebar. I don't expect you of course to examine JSF pages in detail, and I can assure you that there is no substantial difference between the h:forms anyway, and they both perform a full submit.
There is nothing wrong with the property name 'widthPxSideBarLeft', and I think this is a genuine ObjectDB problem that has something to do with the way ObjectDB handles __odbHidden_getWidthPxSideBarLeft.