Jeff,
sounds like some piece of code has already committed the
HTPServletResponse before Axis got it (from Tomcat). Calls to
FlushBuffer() and setHeader() on HttpServletResponse I think will commit
the response. Would JBoss be doing any such thing? I doubt it's Tomcat.
You say the Struts actions may be doing something.
I recommend you create some test code without using Struts and see if
the web service call is successful.
 
To my knowledge, there is nothing you can do once the response is
committed, it's like locking it. There are quite a few methods that will
throw IllegalStateException if they find the response is already
committed.
-jeff
 
  _____  

From: Jeff Amiel [mailto:[EMAIL PROTECTED] 
Sent: Thursday, June 07, 2007 12:45 PM
To: [email protected]
Subject: Guru? Axis 1.X AxisServlet Exception with already committed
response....



        I posted in the Axis list a couple of days ago with no real
bites...
        
        Getting some more feeback on the struts/tomcat side but being
that AxisServlet is what is actually throwing the exception,  I was
pointed here.
        
        The exception I see sporadically is pretty simple..
        
        
        Servlet.service() for servlet AxisServlet threw exception  
        java.lang.IllegalStateException
        
org.apache.catalina.connector.ResponseFacade.setBufferSize(ResponseFacad
e.java:220)
        
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:610)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j
ava:327)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        ...
        
        After looking at the code in ResponseFacade:
        
          public void setBufferSize(int size) {
                if (isCommitted())
                    throw new IllegalStateException
        
        And the AxisServlet doPost():
        
         public void doPost(HttpServletRequest req, HttpServletResponse
res) throws
                    ServletException, IOException {
        ...
        res.setBufferSize(1024 * 8); // provide performance boost.
        
        I have come to the conclusion that the AxisServlet is being
handed off a response that is already in a committed state.
        
        I'm at a complete loss as to how this could happen.  (and it
happens sporadically)
        My own experiments have yielded a possible connection with other
activities (struts actions) on the same box that seem to somehow
'induce' this behavior on the Axis side, but I cannot figure out how or
why.
        
        I've reduced the webservice implementation that is being called
(via axis) to simply doing a Thread.sleep(200) and returning an empty
resultset...and I can still produce the issue.
        
        Any thoughts on how bad or irreverent code on the 'other side of
the house' (other servlets in my war) can be influencing the Axis
elements in this way?
        
        Any help would be appreciated...before I chuck my keyboard out
the window!
        :)
        
        Tomcat 5.5.20 under Jboss 4
        Axis version 1.1 - 1.4 (I tried many versions)
        Struts version 1.3x Java 1.5 under FreeBSD 6.0
        
        
        
        
        
        
        
        
        
        
        

        
  _____  

        Be a better Globetrotter. Get better travel answers
<http://us.rd.yahoo.com/evt=48254/*http://answers.yahoo.com/dir/_ylc=X3o
DMTI5MGx2aThyBF9TAzIxMTU1MDAzNTIEX3MDMzk2NTQ1MTAzBHNlYwNCQUJwaWxsYXJfTkl
fMzYwBHNsawNQcm9kdWN0X3F1ZXN0aW9uX3BhZ2U-?link=list&sid=396545469> from
someone who knows.
        Yahoo! Answers - Check it out. 

Reply via email to