DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12216>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12216 WebServiceProxy error handling Summary: WebServiceProxy error handling Product: Cocoon 2 Version: Current CVS Platform: All URL: http://xml.apache.org/cocoon OS/Version: All Status: NEW Severity: Normal Priority: Other Component: general components AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] >From a discussion on the cocoon-dev mailing list: Exception is thrown when the front portal is not refreshed for a while. > This exception suggests that the HttpMultiClient preserves the connection > object once associated with the session. However the underlying TCP pipe > eventually times out and when you reload the page in the browser, the > HttpMultiClient is not able to forward the request. > > I have been thinking about this and other similar problems. > I guess the correct way to fix this is to have the proxy generate a standard > XML piece along these lines: > > <?xml> > <document xmlns="http://xml.apache.org/cocoon/WebServicesProxy/2002"> > <error id="proxy.failed"> > <message> > Original exception : java.io.IOException: Broken pipe > at java.net.SocketOutputStream.socketWrite(Native Method) > ... > </message> > </error> > </document> > > > This way if a portal which has multiple panes proxied to remote sites will > eventually have to be able to style errors, but will not > be concerned that one remote site will break the entire portal page. > Additionally the WSProxy should attempt to reconnect to the remote site in case of an error and only if it cannot should it return the error XML. Here is the exception: >> >>Original exception : java.io.IOException: Broken pipe >>at java.net.SocketOutputStream.socketWrite(Native Method) >>at java.net.SocketOutputStream.write(SocketOutputStream.java:71) >>at >> >> > org.apache.commons.httpclient.HttpConnection.write(HttpConnection.java:363) > >>at >> >> > org.apache.commons.httpclient.HttpConnection.print(HttpConnection.java:433) > >>at >> >> > org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodB > ase.java:741) > >>at >> >> > org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.jav > a:693) > >>at >> >> > org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:469 > ) > >>at >> >> > org.apache.commons.httpclient.HttpMultiClient.executeMethod(HttpMultiClient. > java:286) > >>at >> >> > org.apache.cocoon.generation.WebServiceProxyGenerator.fetch(WebServiceProxyG > enerator.java:254) > >>at >> >> > org.apache.cocoon.generation.WebServiceProxyGenerator.generate(WebServicePro > xyGenerator.java:172) > >>at >> >> > org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLP > ipeline(AbstractProcessingPipeline.java:506) > >>at >> >> > org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline > .processXMLPipeline(AbstractCachingProcessingPipeline.java:204) > >>at >> >> > org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(Abs > tractProcessingPipeline.java:477) > >>at >> >> > org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(Seri > alizeNode.java:142) > >>at >> >> > org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo > keNodes(AbstractParentProcessingNode.java:83) > >>at >> >> > org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invok > e(PreparableMatchNode.java:163) > >>at >> >> > org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo > keNodes(AbstractParentProcessingNode.java:107) > >>at >> >> > org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(Pipel > ineNode.java:157) > >>at >> >> > org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo > keNodes(AbstractParentProcessingNode.java:107) > >>at >> >> > org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(Pipe > linesNode.java:155) > >>at >> >> > org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess > or.java:327) > >>at >> >> > org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess > or.java:309) > >>at >> >> > org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNod > e.java:131) > >>at >> >> > org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo > keNodes(AbstractParentProcessingNode.java:83) > >>at >> >> > org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invok > e(PreparableMatchNode.java:163) > >>at >> >> ... --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]