-- James Dempster <[EMAIL PROTECTED]> wrote
(on Friday, 11 April 2008, 09:13 PM +0100):
> I'd like the same features on Zend_Rest_Server also, but just noticed that the
> Zend_Rest_Server::fault returns a DOMDocument
Interesting -- it should likely cast that to a string.
> ZF-3102 is the issue regarding throwExceptions
Saw that come in -- thanks.
> I've just noticed that Zend_XmlRpc_Server_Fault has the getException method so
> I don't think this needs an issue any more.
Great!
> On Fri, Apr 11, 2008 at 8:40 PM, Matthew Weier O'Phinney <[EMAIL PROTECTED]>
> wrote:
>
> -- James Dempster <[EMAIL PROTECTED]> wrote
> (on Friday, 11 April 2008, 08:16 PM +0100):
> > That's the way I use SoapServer.
> > I would have thought it was more in keeping with the SoapServer API to
> allow
> > the Exception to be thrown but as it already doesn't maybe add the
> option.
>
> Grrrr... you're right. The xml-rpc server was written a *loooonggg* time
> ago, and I use that more than I use Soap, so I forget some details.
>
> Could you open an issue, requesting two things?
>
> * Accesors for the exception in the fault object
> * Flag to allow throwing exceptions from the server
>
> Thanks!
>
>
> > Example
> > -- server.php --
> > <?php
> >
> > class MyPersonalException extends Exception {}
> >
> > class SoapTestClass {
> >
> > public function testOne($value) {
> > return "You sent $value";
> > }
> >
> > public function testTwo($value) {
> > throw new MyPersonalException('Ooops looks like we made a
> mistake, but
> > we can tell you about it');
> > }
> >
> > public function testThree($value) {
> > throw new Exception('You Shouldn\'t see this error, cause it is
> > unhandled');
> > }
> > }
> >
> > try {
> > $server = new SoapServer(null, array('uri' =>
> 'http://localhost/tests
> /soap/
> > server.php'));
> > $server->setClass('SoapTestClass');
> > $server->handle();
> > } catch(MyPersonalException $e) {
> > $server->fault($e->getCode(), $e->getMessage());
> > } catch(Exception $e) {
> > // do other things like logging, email the admin as this was an
> unexpected
> > error.
> > $server->fault('ERROR', 'An unknown error occured. Please try
> again.');
> > }
> > -- /server.php --
> > -- client.php --
> > <?php
> > $client = new SoapClient(
> > null,
> > array(
> > 'location' => 'http://localhost/tests/soap/server.php',
> > 'uri' => 'http://localhost/tests/soap/server.php',
> > 'trace' => 1
> > )
> > );
> >
> > echo '<b>Request One:</b><br/>';
> > try {
> > echo $client->testOne('FooBar');
> > } catch (SoapFault $soapFault) {
> > echo $soapFault;
> > }
> > echo '<br/><br/>';
> >
> > echo '<b>Request Two:</b><br/>';
> > try {
> > echo $client->testTwo('FooBar');
> > } catch (SoapFault $soapFault) {
> > echo $soapFault;
> > }
> > echo '<br/><br/>';
> >
> > echo '<b>Request Three:</b><br/>';
> > try {
> > echo $client->testThree('FooBar');
> > } catch (SoapFault $soapFault) {
> > echo $soapFault;
> > }
> > echo '<br/><br/>';
> > -- /client.php --
> >
> > --
> > /James
> >
> > On Fri, Apr 11, 2008 at 7:30 PM, Matthew Weier O'Phinney <
> [EMAIL PROTECTED]>
> > wrote:
> >
> > -- James Dempster <[EMAIL PROTECTED]> wrote
> > (on Friday, 11 April 2008, 07:16 PM +0100):
> > > The problem with this is that you loose the actual exception
> object.
> >
> > Okay, how about storing the exception object in the fault response?
> That
> > would give you access to it should you want to log it or manipulate
> the
> > response based on the exception.
> >
> > > I would much prefer something along what the front controller
> does.
> > > Zend_Controller_Front::getInstance()->throwExceptions(true);
> > >
> > > Something like this would be handy for example...
> > >
> > > $server->throwException(true);
> > > try {
> > > echo $server->handle();
> > > } catch (MyPersonalException $e) {
> > > echo $server->fault($e);
> > > } catch (Exception $e) {
> > > // do other things like logging, email the admin as this was
> an
> > unexpected
> > > error.
> > > echo $server->fault(new Exception('An unknown error occured.
> Please
> > try
> > > again.'));
> > > }
> >
> > I'm not likely to implement this as we're trying to follow the
> > SoapServer API with our server components -- and that's not how
> > SoapServer works. Fault responses are still a normal response --
> they
> > just indicate an error occurred.
> >
> > > On Fri, Apr 11, 2008 at 6:05 PM, Matthew Weier O'Phinney <
> > [EMAIL PROTECTED]>
> > > wrote:
> > >
> > > -- James Dempster <[EMAIL PROTECTED]> wrote
> > > (on Friday, 11 April 2008, 04:33 PM +0100):
> > > > I have the very same problem.
> > > >
> > > > I'd much prefer to catch the Exceptions myself, and deal
> with
> them
> > by
> > > either
> > > > allowing the message though based on the type of Exception,
> or
> > change it
> > > to a
> > > > generic Exception.
> > > >
> > > > Maybe time to submit an issue regarding this?
> > >
> > > Actually, you can capture the response, and test to see if it
> is a
> > fault
> > > response, and then modify it before sending:
> > >
> > > $response = $server->handle();
> > >
> > > if ($response instanceof Zend_XmlRpc_Server_Fault) {
> > > // handle differently
> > > } else {
> > > echo $response;
> > > }
> > >
> > >
> > > > On Fri, Apr 11, 2008 at 3:28 PM, Peter Boehlke <
> > [EMAIL PROTECTED]>
> > > wrote:
> > > >
> > > >
> > > > Hi there,
> > > >
> > > > i'm trying around with the Zend_XMLRPC-Server. So far,
> i'm very
> > > pleased
> > > > with
> > > > it. Everything runs without Problems etc.
> > > >
> > > > But i have one Problem concerning the
> Zend_XmlRpc_Server_Fault
> > > > (standard)messages. I want to respond with my own
> > fault-XML-grids, if
> > > > something in the Request was wrong.
> > > >
> > > > Furthermore, i want to validate the Request by myself
> and
> > generate
> > > more
> > > > exact error-messages in the fault-message;
> > > >
> > > > I hope this is understandable! ;)
> > > > Thank you in advance,
> > > >
> > > > Peter Boehlke
> > > > --
> > > > View this message in context: http://www.nabble.com/
> > > >
> > >
> >
>
> Zend_XMLRPC_Server-overwrite--response-customized-Fault-Msgs.-tp16627837p16627837.html
> > > > Sent from the Zend Framework mailing list archive at
> > Nabble.com.
> > > >
> > > >
> > > >
> > >
> > > --
> > > Matthew Weier O'Phinney
> > > Software Architect | [EMAIL PROTECTED]
> > > Zend - The PHP Company | http://www.zend.com/
> > >
> > >
> >
> > --
> > Matthew Weier O'Phinney
> > Software Architect | [EMAIL PROTECTED]
> > Zend - The PHP Company | http://www.zend.com/
> >
> >
>
> --
> Matthew Weier O'Phinney
> Software Architect | [EMAIL PROTECTED]
> Zend - The PHP Company | http://www.zend.com/
>
>
--
Matthew Weier O'Phinney
Software Architect | [EMAIL PROTECTED]
Zend - The PHP Company | http://www.zend.com/