You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by bu...@apache.org on 2002/09/01 06:46:46 UTC

DO NOT REPLY [Bug 12216] New: - WebServiceProxy error handling

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: cocoon-dev@xml.apache.org
        ReportedBy: ivelin@iname.com


>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: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org