La migration JSF-Application Weblogic 12

Nous avons développé une Couture 2 Java EE 5 application et il fonctionne sur Weblogic 11g.

Maintenant j'ai essayé de déployer le même fichier WAR à la nouvelle Weblogic 12c (12.1.1.0 sur mon Windows 7 local de la machine) en suivant la même procédure que sur le précédent WLS, y compris le déploiement de la nécessaire JSF 1.2 la bibliothèque.

Le déploiement et le début de l'application fonctionne bien, mais quand j'ouvre l'URL dans le navigateur, j'obtiens une erreur 500 et le fichier journal indique l'exception suivante:

java.lang.UnsupportedOperationException
        at javax.faces.application.Application.getResourceHandler(Application.java:287)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:588)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242)
...

L'opération en question dans la classe Application appartient à la version 2.0 de JSF, dont je ne comprends pas pourquoi le conteneur essaie de l'appeler depuis que je l'ai déclaré à utiliser JSF 1.2.

Les idées de ce que les causes du problème et de la façon simple de migrer un Java EE 5 application à WLS 12?


Modifier 1/2/12: Puisqu'il n'existe pas de réponses, peut-être un peu bounty aiderait? 😉 Non, sérieusement, il y a des détails que je peut être en mesure de fournir de m'aider à sortir de celui-ci?


Modifier 1/5/12: cj91 demande - le projet n'est pas Maven de la base, donc il n'y a pas de POM. Mais ici, c'est le descripteur de déploiement weblogic.xml:

<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
  <library-ref>
    <library-name>jsf</library-name>
    <specification-version>1.2</specification-version>
    <implementation-version>1.2</implementation-version>
    <exact-match>false</exact-match>
  </library-ref>
</weblogic-web-app>

Et voici la liste des pots prises par l'ant:

commons-digester.jar
jboss-seam-debug.jar
jboss-seam-excel.jar
jboss-seam-ioc.jar
jboss-seam-mail.jar
jboss-seam-pdf.jar
jboss-seam-rss.jar
jboss-seam-ui.jar
jsf-facelets.jar
jxl.jar
richfaces-impl.jar
richfaces-ui.jar
standard.jar
jstl.jar
jsf-api.jar
commons-collections-3.2.1.jar
commons-lang.jar
jboss-seam.jar
persistence-api.jar
jta.jar
jsf-impl.jar

darkX.jar
glassX.jar
laguana.jar

antlr-runtime.jar
commons-beanutils.jar
core.jar
drools-templates.jar
drools-decisiontables.jar
drools-compiler.jar
drools-api.jar
drools-core.jar
janino.jar
jboss-el.jar
jboss-seam-remoting.jar
jbpm-jpdl.jar
mvel2.jar
richfaces-api.jar

spiffy-with_source-all-0.05.jar
SuperCSV-1.52.jar

commons-logging.jar
dom4j.jar
javassist.jar
cglib.jar
antlr.jar
slf4j-api.jar
slf4j-log4j12.jar
hibernate-core.jar
hibernate-search.jar
hibernate-commons-annotations.jar
hibernate-annotations.jar
hibernate-entitymanager.jar
hibernate-validator.jar
jboss-common-core.jar
concurrent.jar
lucene-core.jar
gwt-servlet.jar

Je suis sûr qu'il y a plus de pots en elle que nécessaire, mais c'est l'environnement dans lequel il fonctionne actuellement sur un WebLogic 10.3.5.

Je soupçonne le jsf et jstl pots d'être la source du problème, mais de les supprimer de la guerre n'a rien changé.

La question est toujours d' - pourquoi ne WLS 12 tente d'exécuter quelque chose de JSF 2.0?


Modifier 1/6/12: j'ai réussi à résoudre le problème d'origine - encore l'application ne fonctionne pas correctement (et encore c'est étrange pour moi, car je n'ai pas s'attendre à ce que l'on doit changer beaucoup de choses dans une application en cours d'exécution lors de la mise à jour vers une nouvelle version de WLS), mais je déclare ce cas de figure ici comme résolu.

Pour ceux qui sont intéressés, je l'ai fait, grâce à l'aide des réponses et quelques recherches sur google ces choses:

Changement weblogic.xml pour:

<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
  <container-descriptor>
    <prefer-web-inf-classes>false</prefer-web-inf-classes>
  </container-descriptor>
  <library-ref>
    <library-name>jsf</library-name>
    <specification-version>1.2</specification-version>
    <implementation-version>1.2.9.0</implementation-version>
    <exact-match>true</exact-match>
  </library-ref>
</weblogic-web-app>

Supprimé l'pots de WEB-INF/lib:

jsf-impl.jar
jsf-api.jar
persistence-api.jar
jta.jar
jstl.jar

Dans faces-config.xml changer de vue du gestionnaire (en raison de l'exception IllegalStateException, voir ici):

<view-handler>org.ajax4jsf.application.AjaxViewHandler</view-handler>

Dans persistence.xml changement de la requête de l'usine de la classe (en raison d'ClassNotFoundException: org.mise en veille prolongée.hql.ast.HqlToken, voir ici)

<property name="hibernate.query.factory_class" value="org.hibernate.hql.classic.ClassicQueryTranslatorFactory"/>
merci pour ce post et ce que vous avez fait pour résoudre le problème!!! Je suis en train de faire la même chose que vous et cela m'a beaucoup aidé. +1!!!

OriginalL'auteur Alexander Rühl | 2011-12-20