Schrift
[thread]4433[/thread]

SOAP-Lite: einfaches Beispiel läuft nicht



<< >> 6 Einträge, 1 Seite
Teutales
 2006-07-27 12:50
#37330 #37330
User since
2006-03-21
47 Artikel
BenutzerIn
[default_avatar]
Hallo, steh mal anscheinend wieder total auf dem Schlauch. Wahrscheinlich ist die Antwort trivial...

Habe ein SOAP-Skript auf meinem Webserver:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl -w

use SOAP::Transport::HTTP;

SOAP::Transport::HTTP::CGI
-> dispatch_to('Demo')
-> handle;

package Demo;
sub hi {return "hello, world";}
sub bye {return "goodbye, cruel world";}


Der Client:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
use strict;
use SOAP::Lite;

my $url = 'Pfad zur CGI Datei';

my $soap = SOAP::Lite
-> uri('urn:Demo') # Package
-> proxy($url) # CGI-Datei
-> readable(1)
-> hi() # auszufühende Methode
-> result # führe aus;



Es kommt folgende Fehlermeldung:
500 Internal Server Error at soap-client.pl line 6

Kann mir jemand weiterhelfen?
GwenDragon
 2006-07-27 15:43
#37331 #37331
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Client-Code: hinter -> result fehlt ein ;
Wenn du dann noch print $soap hinzufügst, zeigt bei mir der Client hello, world

Das, wie du es jetzt als Code hast, geht nur von der Kommadozeile.

Als Webserverskript für client-soap.pl fehlt dann noch die Ausgabe eines HTTP-Headers für den Content-Type.

Client:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;
use warnings;
use SOAP::Lite;
use HTTP::Headers;

my $url = 'http://my.example.com/soap/serv.pl'; # SOAP-Serverskript

my $http = new HTTP::Headers;

my $soap = SOAP::Lite
->uri('urn:Demo') # Package
->proxy($url) #CGI-Datei
->readable(1)
->hi() # auszufühende Methode
->result; # führe aus;

$http->header (Content_type => 'text/plain');
print $http->as_string, "\n", $soap;
\n\n

<!--EDIT|GwenDragon|1154001174-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Teutales
 2006-07-27 15:49
#37332 #37332
User since
2006-03-21
47 Artikel
BenutzerIn
[default_avatar]
Hallo, danke für deine Antwort...
Sowohl der ";" als auch das "print $soap;" existiert in meinem Client, habe da ein Fehler mit dem copy-paste gemacht.
Zu Testzwecken starte ich auch den Client aus der Konsole, will mir nur die Prinzipien aneignen, ist im Moment kein Projekt.
Kann das sein, dass mein Server das nicht schluckt? Hab es auch mal mit xampp probiert, funktionierte aber auch nicht wirklich...
GwenDragon
 2006-07-27 15:54
#37333 #37333
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Könntest du bei deinem Clinet mal am Anfang ein
Code: (dl )
use CGI::Carp qw(fatalsToBrowser); 
hinzufügen?
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Teutales
 2006-07-27 16:13
#37334 #37334
User since
2006-03-21
47 Artikel
BenutzerIn
[default_avatar]
Ausgabe (Konsole):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
Content-type: text/html

<h1>Software error:</h1>
<pre>500 Internal Server Error at soap-client.pl line 7
</pre>
<p>
For help, please send mail to this site's webmaster, giving this error message
and the time and date of the error.

</p>

Line 7 ist
my $soap = SOAP::Lite
nepos
 2006-07-27 17:44
#37335 #37335
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nein, bei deinem Code ist fuer Perl Line 7 das:
Code (perl): (dl )
my $soap = SOAP::Lite->uri('urn:Demo')->proxy($url)->readable(1)->hi()->result;


Was sagt dir eine error.log deines Webservers dazu? Da solltest du normal mehr Infos finden.\n\n

<!--EDIT|nepos|1154007935-->
<< >> 6 Einträge, 1 Seite



View all threads created 2006-07-27 12:50.