hamid AGHAZZAF created MYFACES-3889:
---------------------------------------
Summary: Handling PostConstruct annotations - wrong order : under
wildfly-8.0.0.Final
Key: MYFACES-3889
URL: https://issues.apache.org/jira/browse/MYFACES-3889
Project: MyFaces Core
Issue Type: Bug
Environment: wildfly-8.0.0.Final, Spring 3.1.0, myfaces 2.1.12
Reporter: hamid AGHAZZAF
Priority: Blocker
The specification states that managed bean methods annotated with
@PostConstruct have to be called after the object is initialized and after
dependency injection is performed. However, MyFaces calls those methods after
the bean instance is created but before dependency injection is performed.
This issue was resolved for tomcat7 server
(https://issues.apache.org/jira/browse/MYFACES-1761). But remain with WildFly
8.0.Final .
Bellow the list of third party artifacts used with their versions :
activation-1.1.jar
joda-time-2.3.jar velocity-1.6.2.jar
aopalliance-1.0.jar jrobin-1.5.9.jar
xml-apis-1.0.b2.jar
aspectjrt-1.6.12.jar jsr305-1.3.9.jar
xmlbeans-2.3.0.jar
aspectjtools-1.6.2.jar jstl-1.2.jar
aspectjweaver-1.6.11.jar junit-3.8.1.jar
atmosphere-runtime-2.0.1.jar log4j-1.2.12.jar
avalon-framework-4.1.3.jar
logback-classic-0.9.30.jar
bcmail-jdk14-1.38.jar
logback-core-0.9.30.jar
bcmail-jdk14-138.jar logkit-1.0.1.jar
bcprov-jdk14-1.38.jar mail-1.4.jar
bcprov-jdk14-138.jar
myfaces-api-2.1.12.jar
bctsp-jdk14-1.38.jar
myfaces-impl-2.1.12.jar
bsh-2.0b4.jar oro-2.0.8.jar
castor-1.2.jar poi-3.7.jar
cglib-3.0.jar poi-ooxml-3.7.jar
commons-beanutils-1.8.2.jar
poi-ooxml-schemas-3.7.jar
commons-codec-1.3.jar
primefaces-4.0.jar
commons-collections-3.2.jar
primefaces-extensions-0.7.1.jar
commons-dbcp-1.2.2.jar
servlet-api-2.3.jar
commons-digester-1.8.jar
slf4j-api-1.6.2.jar
commons-fileupload-1.3.1.jar
slf4j-log4j12-1.6.1.jar
commons-io-2.4.jar
smoothness-1.0.10.jar
commons-lang-2.2.jar snakeyaml-1.6.jar
commons-lang3-3.1.jar
spring-aop-3.1.0.RELEASE.jar
commons-logging-1.1.jar
spring-asm-3.1.0.RELEASE.jar
commons-pool-1.3.jar
spring-aspects-3.1.0.RELEASE.jar
dom4j-1.6.1.jar
spring-beans-3.1.0.RELEASE.jar
geronimo-stax-api_1.0_spec-1.0.jar
spring-binding-2.3.2.RELEASE.jar
groovy-all-2.0.1.jar
spring-context-3.1.0.RELEASE.jar
gsfar-base-0.0.8-SNAPSHOT.jar
spring-context-support-3.1.0.RELEASE.jar
gsfar-core-0.0.8-SNAPSHOT.jar
spring-core-3.1.0.RELEASE.jar
gsfar-domain-0.0.8-SNAPSHOT.jar
spring-data-commons-1.5.2.RELEASE.jar
gson-2.2.2.jar
spring-data-commons-core-1.4.0.RELEASE.jar
guava-12.0.jar
spring-data-envers-0.1.0.RELEASE.jar
hibernate-commons-annotations-4.0.1.Final.jar
spring-data-jpa-1.3.4.RELEASE.jar
hibernate-core-4.1.7.Final.jar
spring-expression-3.2.1.RELEASE.jar
hibernate-entitymanager-4.1.7.Final.jar
spring-faces-2.3.2.RELEASE.jar
hibernate-envers-4.1.7.Final.jar
spring-integration-core-2.2.2.RELEASE.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
spring-integration-jdbc-2.2.2.RELEASE.jar
hsqldb-1.8.0.7.jar
spring-jdbc-3.1.0.RELEASE.jar
itext-2.1.7.jar
spring-js-2.3.2.RELEASE.jar
jackson-annotations-2.1.4.jar
spring-js-resources-2.3.2.RELEASE.jar
jackson-core-2.1.4.jar
spring-orm-3.1.0.RELEASE.jar
jackson-databind-2.1.4.jar
spring-retry-1.0.2.RELEASE.jar
jasperreports-5.5.1.jar
spring-security-config-3.1.4.RELEASE.jar
javamelody-core-1.49.0.jar
spring-security-core-3.1.4.RELEASE.jar
javassist-3.15.0-GA.jar
spring-security-web-3.1.4.RELEASE.jar
jboss-logging-3.1.0.GA.jar
spring-test-3.1.0.RELEASE.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
spring-tx-3.1.0.RELEASE.jar
jcl-over-slf4j-1.7.1.jar
spring-web-3.1.0.RELEASE.jar
jcommander-1.12.jar
spring-webflow-2.3.2.RELEASE.jar
jcommon-1.0.15.jar
spring-webmvc-3.2.1.RELEASE.jar
jdtcore-3.1.0.jar
stax-api-1.0.1.jar
jfreechart-1.0.12.jar testng-6.4.jar
I use spring profiles rather than maven profiles, this way, the same build (war
file) is deploy-able in tomcat7 server as well as in Wildfly-8.0.0.Final.
I have toggled two types of breakpoints in one of my managed bean :
- The first type is for the initialization method ( annotated with
@PostConstruct )
- The second type is for setters of all properties aware of injection (
annotated with @ManagedProperty("#{xxx}") ).
When deploying to Tomcat7, every thing is well, all injections methods are
invoked before the initialization method is called.
But, when running under Wildfly-8.0.0.Final, the initialization method is
called before, and this causes NullPointerException for properties not yet
injected. This behavior is the same regardless the deployment is done from the
administration console or from my eclipse workbench.
We don’t have a lot of choices regarding the version of myfaces to use, as the
only installer provided for adding support of myfaces to wildFly contains the
version 2.1.12. And it's not a problem for continue with this version of
myfaces. The installer is down-loadable from nexus :
https://repository.jboss.org/nexus/index.html#nexus-search;gav~org.wildfly~wildfly-jsf-installer~~~
Thanks a lot in advance for your response.
--
This message was sent by Atlassian JIRA
(v6.2#6252)