Bonjour ,
voila mon problème :
j'execute des script (module) perl a distance grave a un daemon soaplite :
le soucis est que la première demande echoue tjrs et que la suivante marche sans problème :
donc j'appel un siteagent lui il s'execute normal , il appel le module demandé et la rien ne se passent ( pas de print ni autre ) et on relançant la requette elle marche sans problème au deuxième coup .
le shémas est le suivant :
demandeur ----SOAP---> siteagent----executer---> module (fonction )
quelqu'un serai d'ou viens le problème ?
voila le code du site agent :
puis le module qu'appel le siteagent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #- SiteAgent.pm #- Copyright (c) 2008 package siteagent; ########################################################### # Imports # ########################################################### use warnings; use threads; ########################################################### # Execute the right package # ########################################################### sub getinfo { # Module name to execute . my (@t) = @_; my $fichier = $t[1].".pm"; # A small print print "$t[1] at ".localtime(time)."\n"; # Check if it's the right object name if(-e $fichier) { # Execute require $fichier; # Get result my ($status, @info) = $t[1]->request(); } else { # Module doesn't exists return 4,"doesnt exist !"; } } 1;
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 #- TriggerList.pm #- Copyright (c) 2008 package triggerlist; ########################################################### # Imports # ########################################################### use ModCC::ccadmin2; use strict; ########################################################### # Request # ########################################################### sub request { print "--> Getting Triggers list begins..." ; my $worker; my $result; my $osef; my @ret = (); $worker = new ModCC::ccadmin2(); my ($status, @voblist) = $worker->getVOBList(); print "\["; for(my $i=0;$i<@voblist;$i++) { print " Looking for triggers in vob \"$voblist[$i]\" " ; ($osef,$result) = $worker->getTrigger($voblist[$i]); push(@ret, tri($result, $voblist[$i])); } print "\]" ; my $taille = @ret/10; print "--> Work ends : triggers list will be sent..." ; return $status,@ret; } ########################################################### # Tri # ########################################################### sub tri { my $string = shift; my $vob = shift; my @rep = (); my @data = (); my $k=0; $string =~ s/trigger type/~~trigger type/g; my @data = split(/~~/,$string); shift(@data); for(my $i=0;$i<@data;$i++) { print "\." ; $data[$i] =~ s/\n//g; $data[$i] =~ s/\t//g; $data[$i] =~ s/\r//g; $data[$i] =~ s/ / /g; $data[$i] =~ m/trigger type "([^"]*)" ([^"]*) "([^"]*)" owner: [^ ]* group: [^ ]* (.*)((post|pre)-.*?)( action:(.*?))( action:(.*?))?( action:(.*?))?( excluded users: (.*))?$/; $rep[$k++] = $vob; $rep[$k++] = $1; #name of the trigger $rep[$k++] = $2; #date & creator $rep[$k++] = $3; #comment $rep[$k++] = $4; #all info $rep[$k++] = $5; #post or pre operation $rep[$k++] = $8; #first action $rep[$k++] = $10; #second action $rep[$k++] = $12; #third and more actions in case $rep[$k++] = $14; #excluded users; } return @rep; } } 1;
Partager