MyFaces Core
  1. MyFaces Core
  2. MYFACES-1955

MyFaces 1.2.4 and WebLogic 10.3- strict servlet API: cannot call getWriter() after getOutputStream()

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.2, 1.2.3, 1.2.4
    • Fix Version/s: 1.2.8
    • Component/s: None
    • Labels:
      None
    • Environment:
      Windows Vista, WebLogic 10.3, MyFaces 1.2.4

      Description

      I am trying to run a very simple JSF application using myFaces 1.2.4 and WebLogic 10.3. The application has the following content:
      web.xml:
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <web-app 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-app_2_5.xsd"
      version="2.5">
      <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.faces</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
      <welcome-file>index.html</welcome-file>
      </welcome-file-list>
      </web-app>

      faces-config.xml:
      <?xml version="1.0"?>
      <faces-config 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"
      version="1.2">
      <navigation-rule>
      <from-view-id>/index.jsp</from-view-id>
      <navigation-case>
      <from-outcome>login</from-outcome>
      <to-view-id>/welcome.jsp</to-view-id>
      </navigation-case>
      </navigation-rule>
      <managed-bean>
      <managed-bean-name>user</managed-bean-name>
      <managed-bean-class>pt.pm.richfaces.UserBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
      </faces-config>

      index.html:
      <html>
      <head>
      <meta http-equiv="Refresh" content= "0; URL=index.faces"/>
      <title>Start Web Application</title>
      </head>
      <body>
      <p>Please wait for the web application to start...</p>
      </body>
      </html>

      index.jsp:
      <html>
      <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
      <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
      <f:view>
      <head>
      <title>A Simple JavaServer Faces Application</title>
      </head>
      <body>
      <h:form>
      <h3>Please enter your name and password.</h3>
      <table>
      <tr>
      <td>Name:</td>
      <td><h:inputText value="#

      {user.name}" /></td>
      </tr>
      <tr>
      <td>Password:</td>
      <td><h:inputSecret value="#{user.password}" /></td>
      </tr>
      </table>
      <p><h:commandButton value="Login" action="login" /></p>
      </h:form>
      </body>
      </f:view>
      </html>

      My WEB_INF/lib contains the following jars: commons-beanutils-1.7.0, commons-codec-1.3, commons-collections-3.2, commons-digester-1.8, commons-discovery-0.4, commons-logging-1.1.1, glassfish.el_2.1.0, glassfish.jstl_1.2.0.1, myfaces-api-1.2.4, myfaces-impl-1.2.4.

      Whenever I try to run my application I get the following exception:

      java.lang.IllegalStateException: strict servlet API: cannot call getWriter() aft
      er getOutputStream()
      at weblogic.servlet.internal.ServletResponseImpl.getWriter(ServletRespon
      seImpl.java:308)
      at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspV
      iewHandlerImpl.java:362)
      at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderRes
      ponseExecutor.java:41)
      at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:
      140)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)

      If instead of using myFaces I use the Sun Reference implementation everything goes well. If I deploy the application (using myFaces) in JBoss 5 it works well. So the problem seems to be related with the use of WLS 10.3 and myFaces 1.2.4.

      I tried with 1.2.3 and 1.2.2 and got the issue with both. I tried with 1.2.0 and got another error:

      javax.faces.FacesException: weblogic.servlet.jsp.CompilationException: Failed to compile JSP /index.jsp
      index.jsp:14:22: Static attribute must be a String literal, its illegal to specify an expression.
      <td><h:inputText value="#{user.name}

      " /></td>

      1. MYFACES-1955.patch
        0.8 kB
        Leonardo Uribe

        Activity

          People

          • Assignee:
            Leonardo Uribe
            Reporter:
            Paulo Moreira
          • Votes:
            5 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development