I'm using GlassFish as Server and Netbeans IDE 8.0 Here is my project structure.
How my program works:
Here is the important code in BS.
/* Result.jsp */
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
request.setAttribute("styles", result);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
view.forward(request, response);
/* Test Client Download */
response.setContentType("application/jar");
ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream("/Test.jar");
int read = 0;
byte[] bytes = new byte[1024];
OutputStream os = response.getOutputStream();
while ((read = is.read(bytes)) != -1){
os.write(bytes, 0, read);
}
os.flush();
The Error:
getWriter. Returns a PrintWriter object that can send character text to the client. The PrintWriter uses the character encoding returned by getCharacterEncoding() .
getWriter() method for the response obj that gets us the stream on which we can write our output. response. getWriter() returns a PrintWriter object that can send character text to the client. Calling flush() on the PrintWriter commits the response.
setContentType. Sets the content type of the response being sent to the client, if the response has not been committed yet. The given content type may include a character encoding specification, for example, text/html;charset=UTF-8 .
setLocale. Sets the locale of the response, setting the headers (including the Content-Type's charset) as appropriate. This method should be called before a call to getWriter() . By default, the response locale is the default locale for the server.
It is illegal to use both ServletRequest.getOutputStream() and ServletRequest.getWriter(). This has been answered here in detail here.
java.lang.IllegalStateException: Already using output stream
It is explicit in ServletResponse
javadoc for method getOutputStream()
:
Either this method or getWriter() may be called to write the body, not both, except when reset() has been called.
But I think you did not show the relevant code because according to the stacktrace, the error occurs in controller.BeerSelect.processRequest
, in BeerSelect.java
line 83.
With what you show, I cannot guess where getOutputStream
was called, but the error says that it was, so you can :
getWriter
insteadgetWriter
with getOutputStream
in BeerSelect.java
.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With