質問

We are encountering issues while deploying the new core SDM modules (wars) in weblogic 12c version. The new SDM core module (wb-tss-core-sdm-web-war-0.9.1.war) uses the JSF ,SeamListeners & FacesServlet (version 1.2 jars) and we have found that the JSF 1.2 version is not directly compatible with the weblogic 12c version. Hence, the application deployment is failed with user defined listener conflict issue

As per Weblogic 12c documentation,

"WebLogic Server 12.1.1 has enhanced support for JSF and JSTL. In this release, JSF 2.x and JSTL 1.2 have been incorporated directly in the server's classpath. Your applications deployed to WebLogic Server can seamlessly make use of JSF 2.x and JSTL 1.2 without requiring you to deploy and reference separate shared libraries, as was the case in previous releases. For backward compatibility, WebLogic Server provides JSF and JSTL libraries that can be deployed and referenced by applications. See Deploying JSF 1.2 and JSTL Libraries. "

We had tried to install the JSF 1.2 wars explicitly in the weblogic server path as per the documentation to support the backward compatibility and forced the SDM application/war to use the JSF 1.2 version jars by adding the below entries in the weblogic.xml .

<wls:library-ref>
   <wls:library-name>jsf</wls:library-name>
   <wls:specification-version>1.2</wls:specification-version>
   <wls:implementation-version>1.2</wls:implementation-version>
   <wls:exact-match>false</wls:exact-match>
 </wls:library-ref>

But the deployment is failed again with FacesServlet listener issue as the "jsf-impl-1.2_04_P02.jar" jar is already part of (wb-tss-core-sdm-web-war-0.9.1.war) war .

Tried to add the following entries in the weblogic,xml to force the application to use the application specific jars/classes which are part of the application war file.

<wls:prefer-application-packages>
<wls:package-name>javax.faces.*</wls:package-name>
<wls:package-name>com.sun.faces.*</wls:package-name>
<wls:package-name>com.bea.faces.*</wls:package-name>
<wls:package-name>com.sun.facelets.*</wls:package-name>
</wls:prefer-application-packages>

After adding the above entries, the application deployment is completed successfully but have noticed the following errors in the console:

<BEA-101162> <User defined listener com.sun.faces.config.ConfigureListener failed: javax.faces.FacesException: org.jboss.seam.jsf.SeamApplicationFactory.
javax.faces.FacesException: org.jboss.seam.jsf.SeamApplicationFactory

Due to this above error, some of the Jasper file upload SDM screens are not accessible and it is getting failed with this error:

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.render.RenderKitFactory. Attempting to find backup.

How do we get past this?

役に立ちましたか?

解決

We had the same issue during migration of JBoss Seam application from Weblogic 10.3.3 to Weblogic 12.1.1.
It was resolved by switching to Weblogic's default JSF 2.1.14 and updating Seam version to 2.3.
Hope this helps.

他のヒント

Not sure if you saw the longer discussion on this question: Migrating JSF-Application to Weblogic 12

This helped me when analysing a similar library migration issues (hibernate was on my list).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top