1 Reply Latest reply on Dec 15, 2010 12:40 PM by malnati

    Problem converting Seam + RichFaces App 2 PortletBridge.

    malnati

      Hi,


      I have an application developed with Seam and RichFaces and I'm trying
      convert it to a portlet using JBoss PortletBridge.


      After the deployment of an application, I created a instance in JBoss Portal, but I'm having a problem trying to access the portlet that converted.


      Below are my settings and libraries and the exception. This is my first experience with the community, I hope I can help.

       

      PS: web.xml attached.


       

      portlet.xml

      
      <?xml version="1.0" encoding="UTF-8"?><portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" 
           version="2.0">
      
      <portlet>
          <portlet-name>sgbsPortlet</portlet-name>
          <portlet-class>
            javax.portlet.faces.GenericFacesPortlet
          </portlet-class>
      
          <init-param>
            <name>javax.portlet.faces.defaultViewId.view</name>
            <value>/home.do</value>
          </init-param>
          <init-param>
            <name>javax.portlet.faces.preserveActionParams</name>
            <value>true</value>
          </init-param>
          <expiration-cache>-0</expiration-cache>
          <portlet-info>
             <title>SGBS</title>
          </portlet-info>
          <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
          </supports>
        </portlet>
      
      </portlet-app>
      
      jboss-web.xml
      
      <?xml version='1.0' encoding='ISO-8859-1'?>
       
      <!DOCTYPE jboss-web
          PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"
          "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
          
      <jboss-web>     
           <resource-ref>
                <res-ref-name>jdbc/SGBS</res-ref-name>
                <jndi-name>java:jdbc/OracleSGBS</jndi-name>
           </resource-ref>
      </jboss-web>
      
      jboss-portlet.xml
      
      <?xml version="1.0"?>
      
      <!DOCTYPE portlet-app PUBLIC
         "-//JBoss Portal//DTD JBoss Portlet 2.6//EN"
         "http://www.jboss.org/portal/dtd/jboss-portlet_2_6.dtd"><portlet-app>
          <portlet>
               <portlet-name>sgbsPortlet</portlet-name>
                <header-content>
                 <script src="/faces/rfRes/org/ajax4jsf/framework.pack.js" type="text/javascript" ></script>
                 <script src="/faces/rfRes/org/richfaces/ui.pack.js" type="text/javascript" ></script>
                 <link rel="stylesheet" type="text/css" href="/css/screen.css" media="screen"/>
               </header-content>
          </portlet>
      </portlet-app>         
      
      faces-config.xml
      
      <?xml version="1.0" encoding="UTF-8"?>
      <faces-config version="1.2"
                    xmlns="http://java.sun.com/xml/ns/javaee"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
              
          <!-- Facelets support -->
          <application>
              <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
              <view-handler>org.jboss.portletbridge.application.PortletViewHandler</view-handler>               
              <state-manager>org.jboss.portletbridge.application.PortletStateManager</state-manager>
          </application>
          
          <application>      
                <message-bundle>messages</message-bundle>
                <resource-bundle>
                     <base-name>messages</base-name>
                     <var>message</var>
                </resource-bundle>
                <locale-config>
                     <default-locale>pt_BR</default-locale>
                </locale-config>        
           </application>
           
           <converter>
                <converter-id>dominioConverter</converter-id>
                <converter-class>br.gov.df.sedest.sgbs.web.converter.DominioConverter</converter-class>
           </converter>
          
      </faces-config>
      
      components.xml
      
      <?xml version="1.0" encoding="UTF-8"?>
      <components xmlns="http://jboss.com/products/seam/components"
                  xmlns:core="http://jboss.com/products/seam/core"
                  xmlns:drools="http://jboss.com/products/seam/drools"
                  xmlns:persistence="http://jboss.com/products/seam/persistence"
                  xmlns:security="http://jboss.com/products/seam/security"
                  xmlns:web="http://jboss.com/products/seam/web"
                  xmlns:mail="http://jboss.com/products/seam/mail"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:transaction="http://jboss.com/products/seam/transaction"
                  xsi:schemaLocation=
                          "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.0.xsd
                       http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.0.xsd
                       http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.0.xsd
                       http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.0.xsd
                       http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.0.xsd
                       http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.0.xsd
                       http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.0.xsd">
      
          <core:manager conversation-timeout="120000"
                        concurrent-request-timeout="500"
                        conversation-id-parameter="cid"/>
      
          <security:identity authenticate-method="#{authenticator.authenticate}"/>
      
      </components>
      
      libs
      
      antlr-runtime.jar
      aopalliance-1.0.jar
      avalon-framework-4.1.3.jar
      batik-awt-util-1.6-1.jar
      batik-ext-1.6-1.jar
      batik-gui-util-1.6-1.jar
      batik-util-1.6-1.jar
      bcmail-jdk14-136.jar
      bcprov-jdk14-136.jar
      commons-beanutils-1.7.0.jar
      commons-codec-1.3.jar
      commons-collections-3.2.1.jar
      commons-digester-1.8.jar
      commons-el-1.0.jar
      commons-fileupload-1.2.1.jar
      commons-io-1.3.2.jar
      commons-lang-2.1.jar
      commons-logging-1.1.jar
      commons-validator-1.3.1.jar
      core.jar
      drools-api.jar
      drools-compiler.jar
      drools-core.jar
      itext-2.1.0.jar
      itext-rtf.jar
      itext.jar
      jboss-el-1.0_02.CR4.jar
      jboss-seam-2.2.0.GA.jar
      jboss-seam-ioc-2.2.0.GA.jar
      jboss-seam-jul-2.2.0.GA.jar
      jboss-seam-ui-2.2.0.GA.jar
      jbpm-jpdl.jar
      jcommon.jar
      jfreechart.jar
      jsf-facelets-1.1.15.jar
      jstl-1.0.6.jar
      jxl.jar
      logkit-1.0.1.jar
      mvel2.jar
      oro-2.0.8.jar
      portletbridge-api-2.0.0.BETA.jar
      portletbridge-impl-2.0.0.BETA.jar
      richfaces-api-3.3.1.GA.jar
      richfaces-impl-3.3.1.GA.jar
      richfaces-ui-3.3.1.GA.jar
      slf4j-api-1.5.8.jar
      slf4j-log4j12-1.5.8.jar
      spring-aop-2.5.6.jar
      spring-beans-2.5.6.jar
      spring-context-2.5.6.jar
      spring-context-support-2.5.6.jar
      spring-core-2.5.6.jar
      spring-jdbc-2.5.6.jar
      spring-orm-2.5.6.jar
      spring-tx-2.5.6.jar
      spring-web-2.5.6.jar
      standard-1.1.2.jar
      tomahawk-1.1.8.jar
      xmlParserAPIs-2.0.2.jar
      xpp3_min-1.1.3.4.O.jar
      xstream-1.1.3.jar


      when I access the instance of my application the following error occurs:

      How to solve this?

      Cause: java.lang.StringIndexOutOfBoundsException: String index out of range: 0

      Message: String index out of range: 0
      StackTrace:
      java.lang.StringIndexOutOfBoundsException: String index out of range: 0
           at java.lang.String.charAt(String.java:686)
           at org.jboss.web.tomcat.service.WebAppClassLoader.findClass(WebAppClassLoader.java:81)
           at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
           at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
           at org.jboss.portletbridge.util.WebXML.createErrorViews(WebXML.java:206)
           at org.jboss.portletbridge.util.WebXML.parse(WebXML.java:182)
           at org.jboss.portletbridge.AjaxPortletBridge.init(AjaxPortletBridge.java:211)
           at javax.portlet.faces.GenericFacesPortlet.getFacesBridge(GenericFacesPortlet.java:403)
           at javax.portlet.faces.GenericFacesPortlet.doFacesDispatch(GenericFacesPortlet.java:594)
           at javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:486)
           at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
           at javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:457)
           at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
           at org.jboss.portal.portlet.impl.jsr168.PortletContainerImpl$Invoker.doFilter(PortletContainerImpl.java:568)
           at org.jboss.portal.portlet.impl.jsr168.api.FilterChainImpl.doFilter(FilterChainImpl.java:159)
           at org.jboss.portal.portlet.impl.jsr168.api.FilterChainImpl.doFilter(FilterChainImpl.java:80)
           at org.jboss.portal.portlet.impl.jsr168.PortletContainerImpl.dispatch(PortletContainerImpl.java:505)
           at org.jboss.portal.portlet.container.ContainerPortletDispatcher.invoke(ContainerPortletDispatcher.java:42)
           at org.jboss.portal.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:82)
           at org.jboss.portal.core.aspects.portlet.TransactionInterceptor.org$jboss$portal$core$aspects$portlet$TransactionInterceptor$invokeNotSupported$aop(TransactionInterceptor.java:97)
           at org.jboss.portal.core.aspects.portlet.TransactionInterceptor$invokeNotSupported_N6922078035659651697.invokeNext(TransactionInterceptor$invokeNotSupported_N6922078035659651697.java)
           at org.jboss.aspects.tx.TxPolicy.invokeInNoTx(TxPolicy.java:66)
      
      ...
      
      
      ?xml version="1.0" encoding="UTF-8"?><portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" portlet.xml <?xml version="1.0" encoding="UTF-8"?><portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"      version="2.0"> <portlet>     <portlet-name>sgbsPortlet</portlet-name>     <portlet-class>       javax.portlet.faces.GenericFacesPortlet     </portlet-class>     <init-param>       <name>javax.portlet.faces.defaultViewId.view</name>       <value>/home.do</value>     </init-param>     <init-param>       <name>javax.portlet.faces.preserveActionParams</name>       <value>true</value>     </init-param>     <expiration-cache>-0</expiration-cache>     <portlet-info>        <title>SGBS</title>     </portlet-info>     <supports>       <mime-type>text/html</mime-type>       <portlet-mode>VIEW</portlet-mode>     </supports>   </portlet> </portlet-app> jboss-web.xml <?xml version='1.0' encoding='ISO-8859-1'?> <!DOCTYPE jboss-web     PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"     "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">     <jboss-web>      <!--           Contexto de segurança       -->     <!--security-domain>java:/jaas/sgbs</security-domain>          <context-root>sgbs</context-root-->           <!--           Datasource do SGBS       -->      <resource-ref>           <res-ref-name>jdbc/SGBS</res-ref-name>           <jndi-name>java:jdbc/OracleSGBS</jndi-name>      </resource-ref>      <!--    <class-loading java2ClassLoadingCompliance="false">--> <!--       <loader-repository>--> <!--           seam.jboss.org:loader=sgbsPortlet--> <!--           <loader-repository-config>java2ParentDelegation=false</loader-repository-config>--> <!--       </loader-repository>--> <!--   </class-loading>-->    </jboss-web> jboss-portlet.xml <?xml version="1.0"?> <!DOCTYPE portlet-app PUBLIC    "-//JBoss Portal//DTD JBoss Portlet 2.6//EN"    "http://www.jboss.org/portal/dtd/jboss-portlet_2_6.dtd"><portlet-app>     <portlet>          <portlet-name>sgbsPortlet</portlet-name>           <header-content>            <script src="/faces/rfRes/org/ajax4jsf/framework.pack.js" type="text/javascript" ></script>            <script src="/faces/rfRes/org/richfaces/ui.pack.js" type="text/javascript" ></script>            <link rel="stylesheet" type="text/css" href="/css/screen.css" media="screen"/>          </header-content>     </portlet> </portlet-app>         faces-config.xml <?xml version="1.0" encoding="UTF-8"?> <faces-config version="1.2"               xmlns="http://java.sun.com/xml/ns/javaee"               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">             <!-- Facelets support -->     <application>         <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>         <view-handler>org.jboss.portletbridge.application.PortletViewHandler</view-handler>                       <state-manager>org.jboss.portletbridge.application.PortletStateManager</state-manager>     </application>         <application>                <message-bundle>messages</message-bundle>           <resource-bundle>                <base-name>messages</base-name>                <var>message</var>           </resource-bundle>           <locale-config>                <default-locale>pt_BR</default-locale>           </locale-config>             </application>           <converter>           <converter-id>dominioConverter</converter-id>           <converter-class>br.gov.df.sedest.sgbs.web.converter.DominioConverter</converter-class>      </converter>     </faces-config> components.xml <?xml version="1.0" encoding="UTF-8"?> <components xmlns="http://jboss.com/products/seam/components"             xmlns:core="http://jboss.com/products/seam/core"             xmlns:drools="http://jboss.com/products/seam/drools"             xmlns:persistence="http://jboss.com/products/seam/persistence"             xmlns:security="http://jboss.com/products/seam/security"             xmlns:web="http://jboss.com/products/seam/web"             xmlns:mail="http://jboss.com/products/seam/mail"             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"             xmlns:transaction="http://jboss.com/products/seam/transaction"             xsi:schemaLocation=                     "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.0.xsd                  http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.0.xsd                  http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.0.xsd                  http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.0.xsd                  http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.0.xsd                  http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.0.xsd                  http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.0.xsd"> <!--    <core:init jndi-pattern="poc-0.0.1-SNAPSHOT/#ejbName/local" debug="false"/>-->     <core:manager conversation-timeout="120000"                   concurrent-request-timeout="500"                   conversation-id-parameter="cid"/> <!--    <persistence:managed-persistence-context name="entityManager"--> <!--                                             auto-create="true"--> <!--                                             persistence-unit-jndi-name="java:/pocEntityManagerFactory"/>-->     <security:identity authenticate-method="#{authenticator.authenticate}"/> </components> antlr-runtime.jar aopalliance-1.0.jar avalon-framework-4.1.3.jar batik-awt-util-1.6-1.jar batik-ext-1.6-1.jar batik-gui-util-1.6-1.jar batik-util-1.6-1.jar bcmail-jdk14-136.jar bcprov-jdk14-136.jar commons-beanutils-1.7.0.jar commons-beanutils.jar commons-codec-1.3.jar commons-collections-3.2.1.jar commons-digester-1.8.jar commons-digester.jar commons-el-1.0.jar commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-lang-2.1.jar commons-logging-1.1.jar commons-validator-1.3.1.jar core.jar drools-api.jar drools-compiler.jar drools-core.jar itext-2.1.0.jar itext-rtf.jar itext.jar jboss-el-1.0_02.CR4.jar jboss-el.jar jboss-seam-2.2.0.GA.jar jboss-seam-ioc-2.2.0.GA.jar jboss-seam-jul-2.2.0.GA.jar jboss-seam-ui-2.2.0.GA.jar jbpm-jpdl.jar jcommon.jar jfreechart.jar jsf-facelets-1.1.15.jar jstl-1.0.6.jar jxl.jar logkit-1.0.1.jar mvel2.jar oro-2.0.8.jar portletbridge-api-2.1.0.CR1.jar portletbridge-impl-2.1.0.CR1.jar richfaces-api-3.3.1.GA.jar richfaces-impl-3.3.1.GA.jar richfaces-ui-3.3.1.GA.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar spring-aop-2.5.6.jar spring-beans-2.5.6.jar spring-context-2.5.6.jar spring-context-support-2.5.6.jar spring-core-2.5.6.jar spring-jdbc-2.5.6.jar spring-orm-2.5.6.jar spring-tx-2.5.6.jar spring-web-2.5.6.jar standard-1.1.2.jar tomahawk-1.1.8.jar xmlParserAPIs-2.0.2.jar xpp3_min-1.1.3.4.O.jar xstream-1.1.3.jar

      Thanks.

       

      Message was edited by: Ricardo Malnati Rosa Lima

       

      Message was edited by: Ricardo Malnati Rosa Lima

       

      Message was edited by: Ricardo Malnati Rosa Lima

        • 1. Re: Problem converting Seam + RichFaces App 2 PortletBridge.
          malnati

          resolved!

           

          web.xml

           

          <!--    <error-page>-->

          <!--    <error-code>500</error-code>-->

          <!--    <location>/pagina/applicationerror.xhtml</location>-->

          <!-- </error-page>-->

          <!--    <error-page>-->
          <!--         <error-code>500</error-code>-->
          <!--         <location>/pagina/applicationerror.xhtml</location>-->
          <!--     </error-page>-->