Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-2702

EAR Project Wizard Issues

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Critical Critical
    • 3.0.0.beta1
    • 3.0.0.alpha
    • None
    • None

      When I generate an EAR project using all the default selections with a MySQL DB, I get a number of errors in the generated code. There are two errors that prevent the generated application from deploying to the app server:

      I had these same issue with seam 2.0 and JBoss Tools 2.1.

      1. There are a bunch of statements in the components.xml file for authenticatio, but the code is not implemented. These have to be manually removed in order to get the application to work. Here's the components.xml file that I get after running the wizard:

      <?xml version="1.0" encoding="UTF-8"?>
      <components xmlns="http://jboss.com/products/seam/components"
      xmlns:core="http://jboss.com/products/seam/core"
      xmlns:persistence="http://jboss.com/products/seam/persistence"
      xmlns:drools="http://jboss.com/products/seam/drools"
      xmlns:bpm="http://jboss.com/products/seam/bpm"
      xmlns:security="http://jboss.com/products/seam/security"
      xmlns:mail="http://jboss.com/products/seam/mail"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation=
      "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd
      http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.1.xsd
      http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.1.xsd
      http://jboss.com/products/seam/bpm http://jboss.com/products/seam/bpm-2.1.xsd
      http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd
      http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.1.xsd
      http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd">

      <core:init debug="true" jndi-pattern="@jndiPattern@"/>

      <core:manager concurrent-request-timeout="500"
      conversation-timeout="120000"
      conversation-id-parameter="cid"
      parent-conversation-id-parameter="pid"/>

      <persistence:managed-persistence-context name="entityManager"
      auto-create="true"
      persistence-unit-jndi-name="java:/test2EntityManagerFactory"/>

      <drools:rule-base name="securityRules">
      <drools:rule-files>
      <value>/security.drl</value>
      </drools:rule-files>
      </drools:rule-base>

      <security:rule-based-permission-resolver security-rules="#

      {securityRules}

      "/>

      <security:identity authenticate-method="#

      {authenticator.authenticate}

      " remember-me="true"/>

      <event type="org.jboss.seam.security.notLoggedIn">
      <action execute="#

      {redirect.captureCurrentView}

      "/>
      </event>
      <event type="org.jboss.seam.security.loginSuccessful">
      <action execute="#

      {redirect.returnToCapturedView}

      "/>
      </event>

      <mail:mail-session host="localhost" port="2525" username="test" password="test" />

      <!-- For use with jBPM pageflow or process management -->
      <!--
      <bpm:jbpm>
      <bpm:process-definitions></bpm:process-definitions>
      <bpm:pageflow-definitions></bpm:pageflow-definitions>
      </bpm:jbpm>
      -->

      </components>

      If I rem out all the lines about secutiry and then touch up the security:indentity element a bit then the errors go away.

      2. When I generate an EAR using all the defaults with MySQL DB my application will not deploy due to a duplicate PhaseListener. Here's the error I get:

      22:07:37,546 ERROR [SeamPhaseListener] uncaught exception
      java.lang.IllegalStateException: No phase id bound to current thread (make sure you do not have two SeamPhaseListener instances installed)
      at org.jboss.seam.contexts.PageContext.getPhaseId(PageContext.java:162)
      at org.jboss.seam.contexts.PageContext.isBeforeInvokeApplicationPhase(PageContext.java:174)
      at org.jboss.seam.contexts.PageContext.getCurrentWritableMap(PageContext.java:90)
      at org.jboss.seam.contexts.PageContext.set(PageContext.java:97)
      at org.jboss.seam.Component.newInstance(Component.java:1977)
      at org.jboss.seam.Component.getInstance(Component.java:1873)
      at org.jboss.seam.Component.getInstance(Component.java:1852)
      at org.jboss.seam.Component.getInstance(Component.java:1829)
      at org.jboss.seam.Component.getInstance(Component.java:1824)
      at org.jboss.seam.faces.FacesPage.instance(FacesPage.java:92)
      at org.jboss.seam.core.ConversationPropagation.restorePageContextConversationId(ConversationPropagation.java:84)
      at org.jboss.seam.core.ConversationPropagation.restoreConversationId(ConversationPropagation.java:57)
      at org.jboss.seam.jsf.SeamPhaseListener.afterRestoreView(SeamPhaseListener.java:389)
      at org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:228)
      at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:194)
      at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:175)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:114)
      at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:104)
      at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
      at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
      at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
      at java.lang.Thread.run(Thread.java:619)

      My solution to this is to remove the reference to jboss-seam.jar in the MANIFEST.MF file in the ejb project then manually add jboss-seam.jar to that project's build path. This seems to allow eclipse to find the classes so that the IDE works properly and the application when it deploys also seems to now work. No clue why.

      One additional note - I thought that maybe it was just my config of eclipse so I trashed the whole thing and downloaded a new fresh 3.4 build (J2EE version), applied all the current patches, grabbed the latest seam and tools code, and that's all I have in the IDE (well I have subclipse too).

      beren

              manderse@redhat.com Max Andersen
              berenerchamion_jira Beren Erchamion (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: