Download
Abstract
The processing of a singleton bean which is defined through annotations incorrectly marks the singleton bean as a local bean.
Download Description
PI63621 resolves the following problem:
ERROR DESCRIPTION:
Singleton beans which are created from annotations may be
incorrectly marked as local beans.
LOCAL FIX:
PROBLEM SUMMARY
USERS AFFECTED:
All users of IBM WebSphere Application
Server
PROBLEM DESCRIPTION:
The processing of a singleton bean
which is defined through annotations
incorrectly marks the singleton bean
as a local bean.
RECOMMENDATION:
None
The processing of a singleton bean which is defined through
annotations incorrectly marks the singleton bean as a local
bean.
The problem can be be detected by reviewing the metadata
generated for the bean. Metadata for an EJB JAR file,
including metadata which is obtained from annotations, is
written to the META-INF/ejb-jar_merged.xml file.
The file is stored in a profile specific folder for the EJB
JAR file, for example:
WAS_HOME/profiles/PROFILE_NAME/config/cells/CELL_NAME/applicatio
ns/
APPLICATION_NAME.ear/deployments/
APPLICATION_NAME/EJBJAR_NAME.jar/
META-INF/ejb-jar_merged.xml
For example, for the following singleton bean:
@Singleton
@Local(LocalBusinessInterface.class)
@Remote(RemoteBusinessInterface.class)
public class AnnotationSingletonBean {
@PostConstruct
public void postConstruct() {
}
@PreDestroy
public void preDestroy() {
}
}
The following incorrect metadata for the single bean is
written:
<session>
<ejb-name>AnnotationSingletonBean</ejb-name>
<business-
local>suite.r90.ejb32.ejbendpoints.content.ejb.LocalBu
sinessInterface</business-local>
<business-
remote>suite.r90.ejb32.ejbendpoints.content.ejb.Remote
BusinessInterface</business-remote>
<ejb-
class>suite.r90.ejb32.ejbendpoints.content.ejb.AnnotationSi
ngletonBean</ejb-class>
<session-type>Singleton</session-type>
<concurrency-management-type>Container</concurrency-management-
t
ype>
<local-bean/>
<post-construct>
<lifecycle-callback-
class>suite.r90.ejb32.ejbendpoints.content.e
jb.AnnotationSingletonBean</lifecycle-callback-class>
<lifecycle-callback-method>postConstruct</lifecycle-callback-
met
hod>
</post-construct>
<pre-destroy>
<lifecycle-callback-
class>suite.r90.ejb32.ejbendpoints.content.e
jb.AnnotationSingletonBean</lifecycle-callback-class>
<lifecycle-callback-method>preDestroy</lifecycle-callback-
method
>
</pre-destroy>
</session>
The metadata is correct except for the <local-bean/> element.
The <local-bean/> element should not be present for this bean.
Because this singleton bean does not have an @LocalBean
annotation and does have @Local and @Remote annotations, the
<local-bean/> element should not have been added. The
<local-bean/> element should only be added when the bean has
no other endpoint.
A bean should not be marked as a local bean if at least one
endpoint is specified for the bean.
An endpoint for a bean can be specified through a deployment
descriptor, by using an annotation supplied directly on the
bean class, or specified by using an annotation supplied on an
interface implemented by the bean class.
An endpoint for a bean is specified as a local endpoint, as a
remote endpoint, as a local home endpoint, as a remote home
endpoint, or as a web service endpoint.
More than one type of endpoint can be specified.
PROBLEM CONCLUSION:
A code update was made which corrects the processing of
singleton beans.
The fix for this APAR is currently targeted for inclusion in
fix pack 9.0.0.1. Please refer to the Recommended Updates
page for delivery information:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Prerequisites
None
Installation Instructions
Please review the readme.txt for detailed installation instructions.
Technical Support
Contact IBM Support using SR (http://www.ibm.com/software/support/probsub.html), visit the WebSphere Application Server support web site (http://www.ibm.com/software/webservers/appserv/was/support/), or contact 1-800-IBM-SERV (U.S. only).
Problems (APARS) fixed
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg24042453