[
https://issues.apache.org/jira/browse/CXF-5428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13933094#comment-13933094
]
Patrick Decat commented on CXF-5428:
------------------------------------
On JBoss EAP 5 with CXF 2.6.13, the services list page generates an exception
when serving the servicelist.css file:
{noformat}
java.lang.IllegalStateException: "getWriter()" has already been called for this
response
at
org.apache.catalina.connector.Response.getOutputStream(Response.java:590)
at
org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:183)
at
org.apache.cxf.transport.servlet.servicelist.ServiceListGeneratorServlet.renderStyleSheet(ServiceListGeneratorServlet.java:174)
at
org.apache.cxf.transport.servlet.servicelist.ServiceListGeneratorServlet.service(ServiceListGeneratorServlet.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:164)
at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:131)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:266)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:191)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:242)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
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:235)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
at
org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at
org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
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:158)
at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:383)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:436)
at
org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:385)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
at java.lang.Thread.run(Thread.java:662)
{noformat}
This is due to {{response.getOutputStream()}} being called after
{{response.getWriter()}}:
{noformat:title=http://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/servicelist/ServiceListGeneratorServlet.java}
69 public void service(HttpServletRequest request,
…
86 PrintWriter writer = response.getWriter();
87 AbstractDestination[] destinations =
destinationRegistry.getSortedDestinations();
88 if (request.getParameter("stylesheet") != null) {
89 renderStyleSheet(request, response);
90 return;
91 }
…
169 private void renderStyleSheet(HttpServletRequest request,
HttpServletResponse response)
170 throws IOException {
171 response.setContentType("text/css; charset=UTF-8");
172 URL url = this.getClass().getResource("servicelist.css");
173 if (url != null) {
174 IOUtils.copy(url.openStream(), response.getOutputStream());
175 }
176 }
{noformat}
Hence the initial suggestion from the original reporter to move the
{{response.getWriter();}} call.
Should I open a new issue?
Regards,
Patrick.
> Sevice list page default stylesheet is not effective
> ----------------------------------------------------
>
> Key: CXF-5428
> URL: https://issues.apache.org/jira/browse/CXF-5428
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Affects Versions: 2.7.8
> Reporter: ptma
> Assignee: Sergey Beryozkin
> Priority: Trivial
> Labels: patch
> Fix For: 2.6.12, 2.7.9, 3.0.0-milestone2
>
>
> Fix:
> Move line 86
> PrintWriter writer = response.getWriter();
> to line 126
> Modify line 172
> URL url = this.getClass().getResource("servicelist.css");
> with
> URL url = this.getClass().getResource("../servicelist.css");
--
This message was sent by Atlassian JIRA
(v6.2#6252)