9 Replies Latest reply on Jan 31, 2012 10:19 PM by gastaldi

    Seam-Faces on Weblogic 12c(JavaEE6)

    sg85575
      Hi Experts,

      I am using Weblogic12c that seems to bundle Weld(1-1-3.SP1) as a CDI container.And that I am trying to deploy a simple seam-faces(3.0.0.Final) app, which fails with following unsatisfied-dependencies during the deployment. Any ideas?

      --snip--
      Caused By: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Messages] with qualifiers [@Default] at injection point [[parameter 2] of [method] org.jboss.seam.faces.status.MessagesAdapter.convert(PhaseEvent, Messages)]
              at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:274)
              at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:243)
              at org.jboss.weld.bootstrap.Validator.validateObserverMethods(Validator.java:505)
              at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:335)
              at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:366)
              Truncated. see log file for complete stacktrace
      --snip--

      I tried respective injection-point(s) from MessagesDispatcher in seam-faces-module in my local, and then it deployed fine. There may ofcourse be other runtime consequences, but it seems the deployment was blocked only by the above issue.

      Here is related code in MessagesDispatcher:

      --snip--
      import org.jboss.seam.international.status.Messages;
      ...
      public class MessagesAdapter implements Serializable {

          void flushBeforeNavigate(@Observes final PreNavigateEvent event, Messages messages) {


          void convert(@Observes @Before @RenderResponse final PhaseEvent event, Messages messages) {
      ....
      }
      --snip--

      I would appreciate any ideas, suggestions.

      Thanks.

      Suhas
        • 1. Re: Seam-Faces on Weblogic 12c(JavaEE6)
          sg85575

          c/I tried respective injection-point(s)/I tried removing respective injection-point(s)/


          Here is the MessageDispatcher in my local after removing Messages injection, that allowed the Deployment to work.


          --snip--
          import org.jboss.seam.international.status.Messages;
          ...
          public class MessagesAdapter implements Serializable {


              void flushBeforeNavigate(final PreNavigateEvent event, Messages messages) {



              void convert(final PhaseEvent event, Messages messages) {
          ....
          }
          --snip--

          • 2. Re: Seam-Faces on Weblogic 12c(JavaEE6)
            lightguard

            Sad to see they're using 1.1.3, but better than nothing.


            Try Seam Faces 3.1.0.Final. Also, if you're not using the bom to get the versions, please do so, it will be much easier than trying to find versions which work together.


            This message seems like you're missing Seam International.

            • 3. Re: Seam-Faces on Weblogic 12c(JavaEE6)
              sg85575
              Thanks Jason.

              I had seam-international jar in the war file.

              Anyway, I changed to Seam Faces 3.1.0.Final as you suggested and here is my exploded war-archive:

              --snip--
              .//maven-archiver
              .//maven-archiver/pom.properties
              .//seamfaces-War
              .//seamfaces-War/index.jsp
              .//seamfaces-War/META-INF
              .//seamfaces-War/WEB-INF
              .//seamfaces-War/WEB-INF/beans.xml
              .//seamfaces-War/WEB-INF/classes
              .//seamfaces-War/WEB-INF/lib
              .//seamfaces-War/WEB-INF/lib/jboss-logmanager-1.2.0.GA.jar
              .//seamfaces-War/WEB-INF/lib/ocpsoft-pretty-time-1.0.7.jar
              .//seamfaces-War/WEB-INF/lib/prettyfaces-jsf12-3.3.1.jar
              .//seamfaces-War/WEB-INF/lib/seam-faces-3.1.0.Final.jar
              .//seamfaces-War/WEB-INF/lib/seam-faces-api-3.1.0.Final.jar
              .//seamfaces-War/WEB-INF/lib/seam-international-api-3.1.0.Final.jar
              .//seamfaces-War/WEB-INF/lib/solder-api-3.1.0.Final.jar
              .//seamfaces-War/WEB-INF/lib/solder-impl-3.1.0.Final.jar
              .//seamfaces-War/WEB-INF/lib/solder-logging-3.1.0.Final.jar
              .//seamfaces-War/WEB-INF/web.xml
              .//seamfaces-War.war
              --snip--

              You would notice there are no application classes and is really a simplest possible seam-faces app. The index.jsp also is the maven generated hello-world like stuff, no references to seam.

              Here are the bootstrap CDI messages as part of the deployment, and then the unsatisfied-dependency of injecting "org.jboss.seam.international.status.Messages" into "org.jboss.seam.faces.status.MessagesAdapter".

              --snip--
              Jan 11, 2012 8:01:38 PM org.jboss.solder.logging.Logger info
              INFO: Solder Config XML provider starting...
              Jan 11, 2012 8:01:38 PM org.jboss.solder.logging.Logger info
              INFO: Loading XmlDocumentProvider: org.jboss.solder.config.xml.bootstrap.ResourceLoaderXmlDocumentProvider
              Jan 11, 2012 8:01:38 PM org.jboss.solder.logging.Logger info
              INFO: Solder 3.1.0.Final (build id: 3.1.0.Final)
              Jan 11, 2012 8:01:39 PM org.jboss.solder.logging.Logger info
              INFO: Preventing class org.jboss.seam.faces.validation.InputElement from being installed as bean due to @Veto annotation
              <Jan 11, 2012 8:01:39 PM MST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "1326337298186" for task "8". Error is: "weblogic.management.DeploymentException: "
              weblogic.management.DeploymentException:
                   at weblogic.application.internal.BaseDeployment.throwAppException(BaseDeployment.java:123)
                   at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:239)
                   at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:48)
                   at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)
                   at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
                   Truncated. see log file for complete stacktrace


              Caused By: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Messages] with qualifiers [@Default] at injection point [[parameter 2] of [method] org.jboss.seam.faces.status.MessagesAdapter.convert(PhaseEvent, Messages)]
                   at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:274)
                   at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:243)
                   at org.jboss.weld.bootstrap.Validator.validateObserverMethods(Validator.java:505)
              --snip--

              Suhas

              • 4. Re: Seam-Faces on Weblogic 12c(JavaEE6)
                lightguard

                For some reason you only have the Seam International api. You'll need both seam-international-api and seam-international

                • 5. Re: Seam-Faces on Weblogic 12c(JavaEE6)
                  sg85575
                  Thanks Jason for pointing out the missing jar. It appears the 3.0.0.Final had a single seam-international jar[seam-international-3.0.0.Final.jar], and with 3.1.0.Final, the API and implementation jars are separated.

                  Anyway, given maven didn't fetch the seam-international's implementation jar, I added explicit dependency to the pom and here is how the exploded web-app archive looks:

                  --snip--
                  .//index.jsp
                  .//META-INF
                  .//WEB-INF
                  .//WEB-INF/beans.xml
                  .//WEB-INF/classes
                  .//WEB-INF/lib
                  .//WEB-INF/lib/jboss-logging-3.0.0.Beta4.jar
                  .//WEB-INF/lib/jboss-logmanager-1.2.0.CR4.jar
                  .//WEB-INF/lib/joda-time-1.6.jar
                  .//WEB-INF/lib/ocpsoft-pretty-time-1.0.7.jar
                  .//WEB-INF/lib/prettyfaces-jsf12-3.3.2.jar
                  .//WEB-INF/lib/seam-faces-3.1.0.Final.jar
                  .//WEB-INF/lib/seam-faces-api-3.1.0.Final.jar
                  .//WEB-INF/lib/seam-international-3.1.0.Final.jar
                  .//WEB-INF/lib/seam-international-api-3.1.0.Final.jar
                  .//WEB-INF/lib/solder-api-3.1.0.Final.jar
                  .//WEB-INF/lib/solder-impl-3.1.0.Final.jar
                  .//WEB-INF/lib/solder-logging-3.1.0.Final.jar
                  .//WEB-INF/web.xml
                  --snip--

                  And still no luck.

                  --snip--
                  Jan 12, 2012 9:12:06 AM org.jboss.solder.logging.Logger info
                  INFO: Solder Config XML provider starting...
                  Jan 12, 2012 9:12:06 AM org.jboss.solder.logging.Logger info
                  INFO: Loading XmlDocumentProvider: org.jboss.solder.config.xml.bootstrap.ResourceLoaderXmlDocumentProvider
                  Jan 12, 2012 9:12:06 AM org.jboss.solder.logging.Logger info
                  INFO: Solder 3.1.0.Final (build id: 3.1.0.Final)
                  Jan 12, 2012 9:12:08 AM org.jboss.solder.logging.Logger info
                  INFO: Preventing class org.jboss.seam.faces.validation.InputElement from being installed as bean due to @Veto annotation
                  Jan 12, 2012 9:12:08 AM org.jboss.solder.logging.Logger info
                  INFO: Preventing class org.jboss.seam.international.locale.LocaleConfiguration from being installed as bean due to @Veto annotation
                  Jan 12, 2012 9:12:08 AM org.jboss.solder.logging.Logger info
                  INFO: Add @MessageBundle to org.jboss.solder.reflection.annotated.AnnotationBuilder.messages injection point for the type: org.jboss.solder.support.SolderMessages
                  Jan 12, 2012 9:12:08 AM org.jboss.solder.logging.Logger info
                  INFO: Add @MessageBundle to org.jboss.solder.reflection.annotated.AnnotatedTypeBuilder.messages injection point for the type: org.jboss.solder.support.SolderMessages
                  <Jan 12, 2012 9:12:09 AM MST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "1326384725610" for task "0". Error is: "weblogic.management.DeploymentException: "
                  weblogic.management.DeploymentException:
                       at weblogic.application.internal.BaseDeployment.throwAppException(BaseDeployment.java:123)
                       at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:239)
                       at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:48)
                       at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)
                       at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
                       Truncated. see log file for complete stacktrace
                  Caused By: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Messages] with qualifiers [@Default] at injection point [[parameter 2] of [method] org.jboss.seam.faces.status.MessagesAdapter.convert(PhaseEvent, Messages)]
                       at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:274)
                       at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:243)
                       at org.jboss.weld.bootstrap.Validator.validateObserverMethods(Validator.java:505)
                       at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:335)
                       at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:366)
                  --snip--

                  I really appreciate your help.

                  Thanks.

                  Suhas
                  • 6. Re: Seam-Faces on Weblogic 12c(JavaEE6)
                    lightguard

                    Maybe more of the stack trace? Also not sure why you're using prettyfaces-jsf12 instead jsf2. As it currently stands, I'm at a bit of a loss. Maybe a bug in WebLogic? Have you tried a different server?

                    • 7. Re: Seam-Faces on Weblogic 12c(JavaEE6)
                      sg85575

                      The problem is resolved, a workaround really.


                      It appears the beans are not resolved across BDAs in the WEB-INF/lib.


                      As per the injection-point inside MessagesAdapter of seam-faces module, it needs a Messages bean from seam-international module, and it wasn't accessible. I created an uber jar out of the seam-faces and seam-international module and it worked.

                      • 8. Re: Seam-Faces on Weblogic 12c(JavaEE6)
                        lightguard

                        Ugh. Another server (but it's from Oracle, so not surprised there as Glassfish is broken in similar ways) with BDA issues. Thanks for the heads up.

                        • 9. Re: Seam-Faces on Weblogic 12c(JavaEE6)
                          gastaldi

                          Created https://issues.jboss.org/browse/SEAM-131 to solve this issue