Re: Exception werfen (Controller und Webservice)

"Nils Beckmann" <[email protected]> Fri, 23 Feb 2007 16:55:38 +0100
Newsgroups gmane.comp.lang.ruby.german
Message-ID <[email protected]>
--===============2100631807==
Content-Type: multipart/alternative; 
	boundary="----=_Part_52223_32590296.1172246138509"

------=_Part_52223_32590296.1172246138509
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Erstmal danke f=FCr die bisherige Hilfe

Ich bekomme einen RuntimeError.
Den Erzeuge ich in einem anderen Controller mit raise "nachricht"

Habe dann jetzt versucht mir mit SOAP::FaultError.new(exc) bzw. ...new(
exc.message) oder auch nru ...new("message")  einen Soapfault zu erstellen.
Dort bekomme ich dann einen error.

NoMethodError (undefined method `faultcode' for "exceptions2":String):
    /usr/local/lib/ruby/1.8/soap/soap.rb:90:in `initialize'

Kann aber in der Doku nichts finden was mir weiter hilft.

Hoffe mir kann auch hier weiter geholfen werden.

Am 23.02.07 schrieb Tim Becker <[email protected]>:
>
> >
> > Im Controller wird eine Methode abgearbeite in der eine Exception
> auftreten
> > kann.
> >
> > def methode
> >      begin
> >              .
> >              .
> >      rescue =3D> exc
> >
> >      end
> > end
> >
> > In dem rescue soll jetzt das Exception handling passieren.
> > Ich hab es mit Exception.new(exc) versucht.
>
>
> Die Ruby Exception steckt schon in `exc` drin, Du brauchst die nicht
> mehr zu wrappen. Anhand Deines Beispiels laesst sich aber leider nicht
> erkennen, wo die Exception entsteht. Wenn kein Fault von dem
> webservice geliefert wird, wird natuerlich auch in Ruby kein SOAP
> fault entstehen.
>
> Wenn Du in dem rescue Block Dir mal den Wert von `exc.class` ausgeben
> laesst, solltest Du sehen, ob die Exception eine "SOAP::FaultError"
> ist oder nicht. Ansonsten kannst Du Dir mit `exc.backtrace`  anzeigen
> lassen, wo die Exception ueberhaupt entsteht.
>
>
> > Das Ergebniss was ich bekommme ist das der R=FCckgabestring vom Webserv=
ice
> die
> > Message von der Exception enth=E4lt. Was ich aber m=F6chte ich das ich =
eine
> > soapfault zur=FCck bekomme.
>
> Was genau verstehst Du unter "soapfault"? Du moechtest an der Stelle
> die reine XML Darstellung der SOAP Nachricht erhalten, oder eine Ruby
> Exception, die SOAP Fehler abbildet? Ich vermute. dass es sich beim
> dem "Rueckgabestring" tatsaechlich um ein `SOAP::FaultError` handelt,
> aber wenn Du den einfach mit `puts` ausgibst, wird nur die
> Fehlermeldung angezeigt. Wie gesagt, mit `exc.class` kannst Du
> ermitteln, ob es sich tatsaechlich nur um einen String handelt.
>
> >Hab leider auch noch nichts gefunden was mir sagt
> > ob es einen soapfaul =FCberhaupt in Ruby oder Ruby on Rails gibt. Ich w=
ei=DF
> nur
> > das es bei Java geht.
>
>
> http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/classes/SOAP/FaultError.h=
tml
> http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/index.html
>
> Die soap4r Doku ist furchtbar. Passt irgendwie zu SOAP an sich...
>
> Gruss,
>    -tim
> _______________________________________________
> Ruby-de-talk mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/ruby-de-talk
>

------=_Part_52223_32590296.1172246138509
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Erstmal danke f=FCr die bisherige Hilfe<br><br>Ich bekomme einen RuntimeErr=
or.<br>Den Erzeuge ich in einem anderen Controller mit raise &quot;nachrich=
t&quot;<br><br>Habe dann jetzt versucht mir mit SOAP::FaultError.new(exc) b=
zw. ...new(
exc.message) oder auch nru ...new(&quot;message&quot;)&nbsp; einen Soapfaul=
t zu erstellen. <br>Dort bekomme ich dann einen error.<br><br>NoMethodError=
 (undefined method `faultcode&#39; for &quot;exceptions2&quot;:String):<br>=
&nbsp;&nbsp;&nbsp; /usr/local/lib/ruby/1.8/soap/soap.rb:90:in `initialize&#=
39;
<br><br>Kann aber in der Doku nichts finden was mir weiter hilft. <br><br>H=
offe mir kann auch hier weiter geholfen werden.<br><br><div><span class=3D"=
gmail_quote">Am 23.02.07 schrieb <b class=3D"gmail_sendername">Tim Becker</=
b>
 &lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt;:</spa=
n><blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204=
, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt;<br>&gt; Im=
 Controller wird eine Methode abgearbeite in der eine Exception auftreten
<br>&gt; kann.<br>&gt;<br>&gt; def methode<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;begin<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.<br>&gt;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;rescue =3D&gt; exc<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;end<br>&gt; end<br>&gt;<br>&gt; In dem rescue soll jetzt da=
s Exception handling passieren.
<br>&gt; Ich hab es mit Exception.new(exc) versucht.<br><br><br>Die Ruby Ex=
ception steckt schon in `exc` drin, Du brauchst die nicht<br>mehr zu wrappe=
n. Anhand Deines Beispiels laesst sich aber leider nicht<br>erkennen, wo di=
e Exception entsteht. Wenn kein Fault von dem
<br>webservice geliefert wird, wird natuerlich auch in Ruby kein SOAP<br>fa=
ult entstehen.<br><br>Wenn Du in dem rescue Block Dir mal den Wert von `exc=
.class` ausgeben<br>laesst, solltest Du sehen, ob die Exception eine &quot;=
SOAP::FaultError&quot;
<br>ist oder nicht. Ansonsten kannst Du Dir mit `exc.backtrace`&nbsp;&nbsp;=
anzeigen<br>lassen, wo die Exception ueberhaupt entsteht.<br><br><br>&gt; D=
as Ergebniss was ich bekommme ist das der R=FCckgabestring vom Webservice d=
ie<br>&gt; Message von der Exception enth=E4lt. Was ich aber m=F6chte ich d=
as ich eine
<br>&gt; soapfault zur=FCck bekomme.<br><br>Was genau verstehst Du unter &q=
uot;soapfault&quot;? Du moechtest an der Stelle<br>die reine XML Darstellun=
g der SOAP Nachricht erhalten, oder eine Ruby<br>Exception, die SOAP Fehler=
 abbildet? Ich vermute. dass es sich beim
<br>dem &quot;Rueckgabestring&quot; tatsaechlich um ein `SOAP::FaultError` =
handelt,<br>aber wenn Du den einfach mit `puts` ausgibst, wird nur die<br>F=
ehlermeldung angezeigt. Wie gesagt, mit `exc.class` kannst Du<br>ermitteln,=
 ob es sich tatsaechlich nur um einen String handelt.
<br><br>&gt;Hab leider auch noch nichts gefunden was mir sagt<br>&gt; ob es=
 einen soapfaul =FCberhaupt in Ruby oder Ruby on Rails gibt. Ich wei=DF nur=
<br>&gt; das es bei Java geht.<br><br><a href=3D"http://www.ruby-doc.org/st=
dlib/libdoc/soap/rdoc/classes/SOAP/FaultError.html">
http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/classes/SOAP/FaultError.htm=
l</a><br><a href=3D"http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/index.h=
tml">http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/index.html</a><br><br>
Die soap4r Doku ist furchtbar. Passt irgendwie zu SOAP an sich...<br><br>Gr=
uss,<br>&nbsp;&nbsp; -tim<br>______________________________________________=
_<br>Ruby-de-talk mailing list<br><a href=3D"mailto:Ruby-de-talk@rubyforge.=
org">[email protected]
</a><br><a href=3D"http://rubyforge.org/mailman/listinfo/ruby-de-talk">http=
://rubyforge.org/mailman/listinfo/ruby-de-talk</a><br></blockquote></div><b=
r>

------=_Part_52223_32590296.1172246138509--

--===============2100631807==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Ruby-de-talk mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ruby-de-talk
--===============2100631807==--