Zurück   Flashforum > Flash > Mobile Flash und Flash Lite

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-07-2011, 12:48   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
Probleme mit Zugriff auf Web Server

Hallo, ich bin neu im Flash geschehen.
Da ich trotz Mac nicht mit XCode zurecht gekommen bin, und bei FlashBuilder den Vorteil von beiden großen Mobile Plattformen sehe, wagte ich den Versuch mit FlashBuilder.

Mein App welches Daten von einem Sql Sever bezieht läuft lokal ohne Probleme, als lokalen Server benutze ich Xampp in der aktuellsten Version.

Alle Daten die das App anzeigen soll tut es auch, also zum testen ab aufs iphone, leider bekomme ich jetzt nichts mehr im Debug Modus angezeigt.

Wenn ich jetzt in die Netzüberwachung schaue bekomme ich folgendes angezeigt sobald ich auf meinen Server im Netz zugreife:

Code:
<Records><Record_1 status="OK" ><Summary><Service>null</Service><Operation>client_ping</Operation><Url><![CDATA[http://XYZ.de/flash/gateway.php]]></Url><Request_Time>Sat Jul 02 13:39:15 CEST 2011</Request_Time><Request_Size>735 (Bytes)</Request_Size><Response_Time>Sat Jul 02 13:39:16 CEST 2011</Response_Time><Response_Size>116 (Bytes)</Response_Size><Elapsed_Time>979 (ms)</Elapsed_Time><Source_Code>null</Source_Code><Source_Line>null</Source_Line></Summary><Request_Details><Status>OK</Status><Header><![CDATA[POST /flash/gateway.php HTTP/1.1
Host: XYZ.de
Content-Type: application/x-amf
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.6
Referer: app:/KreisApp.swf
X-Flash-Version: 10,2,153,1
Accept: */*
Accept-Language: de-de
Accept-Encoding: gzip, deflate
Cookie: 15f3c947f73860adf0ee50dc164e5ce5=2f55110d4df1744096955ec04f405fba
Content-Length: 244

]]></Header><Body>Flex Message (flex.messaging.messages.CommandMessage)     operation = client_ping    clientId = null    correlationId =     destination =     messageId = 3CE364CF-E00A-F96D-6059-EAA53CA79578    timestamp = 0    timeToLive = 0    body = {}    hdr(DSMessagingVersion) = 1    hdr(DSId) = nil</Body><Bytes_Sent><Header>437</Header><Body>288</Body></Bytes_Sent></Request_Details><Response_Details><Status>OK</Status><Header><![CDATA[HTTP/1.1 200 OK
Date: Sat, 02 Jul 2011 11:39:19 GMT
Server: Apache
Content-Length: 0
Content-Type: text/html

]]></Header><Body></Body><Bytes_Received><Header>116</Header><Body>0</Body></Bytes_Received></Response_Details></Record_1><Record_2 status="Pending" ><Summary><Service>RemoteService</Service><Operation>getJos_docmanAusschreibungen</Operation><Url><![CDATA[http://XYZ.de/flash/gateway.php]]></Url><Request_Time>Sat Jul 02 13:39:15 CEST 2011</Request_Time><Request_Size>325 (Bytes)</Request_Size><Response_Time>null</Response_Time><Response_Size>0 (Bytes)</Response_Size><Elapsed_Time>null (ms)</Elapsed_Time><Source_Code>/Users/christian/Documents/Adobe Flash Builder 4.5/KreisApp1/src/services/josdocmanservice/_Super_JosdocmanService.as</Source_Code><Source_Line>101</Source_Line></Summary><Request_Details><Status>OK</Status><Header><![CDATA[ ServiceRequest: getJos_docmanAusschreibungen; RemoteService; getJos_docmanAusschreibungen
(mx.messaging.messages::RemotingMessage)#0
  body = (Array)#1
  clientId = (null)
  destination = ""
  headers = (Object)#2
  messageId = "EBAF8C3E-1F86-CF63-4BA0-EAA53C94FD3F"
  operation = "getJos_docmanAusschreibungen"
  source = "JosdocmanService"
  timestamp = 0
  timeToLive = 0]]></Header><Body>(mx.messaging.messages::RemotingMessage)#0
  body = (Array)#1
  clientId = (null)
  destination = ""
  headers = (Object)#2
  messageId = "EBAF8C3E-1F86-CF63-4BA0-EAA53C94FD3F"
  operation = "getJos_docmanAusschreibungen"
  source = "JosdocmanService"
  timestamp = 0
  timeToLive = 0</Body><Bytes_Sent><Header>375</Header><Body>284</Body></Bytes_Sent></Request_Details><Response_Details><Status>null</Status><Header><![CDATA[ ServiceResponse: ; null]]></Header><Body></Body><Bytes_Received><Header>24</Header><Body>0</Body></Bytes_Received></Response_Details></Record_2></Records>
Wenn ich die Methode Testen möchte bekomme ich folgenden Fehler:

Code:
InvocationTargetException:Beim Aufrufen der Methode ist ein Fehler aufgetreten. Überprüfen Sie Ihre Methodeneingaben oder den Servercode und versuchen Sie, die Methode erneut aufzurufen. 

Ursache: java.io.IOException: Server returned HTTP response code: 500 for URL: http://XYZ.de/flash/gateway.php
gehe ich auf die Gateway.php bekomme ich ohne weiteres das beschriebene Nachricht: Zend Amf Endpoint was ja richtig ist.

ICh mach jetzt schon seit mehreren Tagen rum und versuche den fehler zu finden aber leider weiß ich nicht mehr weiter
chka ist offline   Mit Zitat antworten
Alt 02-07-2011, 14:06   #2 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
ich kenn mich zwar nicht mit mobile aus, aber der Statuscode 500 heisst Internal Server Error (HTTP-Statuscode)

wie wäre es, wenn du mal versuchst auf dem Server zu loggen, was da passiert?
Kommen die Daten korrekt an, encoding, Struktur, ...
dann in welchem Teil der PHP-Scripts kommt es zum fehler?
...
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 02-07-2011, 17:13   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
der 500 deutet auf einen fehler im cod hin richtig da ich die gateway.php per brpwser aber ohne probleme ausführen denke ich das es der service.php ist.

in der er access.log meines servers sehe ich den zugriff, das erste ist die anfrage nach dem rss fead:

Code:
109.90.XXX.XXX - - [02/Jul/2011:17:55:44 +0200] "GET /index.php?feed%5Fid=2&format=raw&option=com%5Fninjarsssyndicator HTTP/1.1" 200 25628 "app:/KreisApp.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.6"
und das 2 ist die anfrage nach meinem sql datenbank:

Code:
109.90.XXX.XXX - - [02/Jul/2011:17:55:47 +0200] "POST /flash/gateway.php HTTP/1.1" 200 - "app:/KreisApp.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.6"
welcher mit 200 Code bestätigt wird

in der error.log finde ich nur etwas wenn ich die methode ausführe:

Code:
[Sat Jul 02 18:01:27 2011] [warn] [client 109.90.XXX.YYY] mod_fcgid: stderr: PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 4294967296 bytes) in /var/www/web424/html/kreisroot/flash/services/JosdocmanService.php on line 191
in der besagten zeile 191 steht folgendes

PHP-Code:
mysqli_stmt_bind_result($stmt$row->id$row->catid$row->dmname$row->dmdescription$row->dmdate_published$row->dmowner$row->dmfilename$row->published$row->dmurl$row->dmcounter$row->checked_out$row->checked_out_time$row->approved$row->dmthumbnail$row->dmlastupdateon$row->dmlastupdateby$row->dmsubmitedby$row->dmmantainedby$row->dmlicense_id$row->dmlicense_display$row->access$row->attribs); 
davor
PHP-Code:
$rows = array(); 
daraufhin habe ich dann die zeile mal ein wenig editiert:

ich habe alle daten die ich NICHT brauche herausgenommen:

PHP-Code:
mysqli_stmt_bind_result($stmt$row->id$row->dmname); 
und desweiteren die sq abfrage auf genau die beiden parameter beschränkt s.h. komplette Funktion:

PHP-Code:
        public function getJos_docmanAusschreibungen() {
                
$itemID 103;
        
$stmt mysqli_prepare($this->connection"SELECT id,dmname FROM $this->tablename where catid=?");
        
$this->throwExceptionOnError();

        
mysqli_stmt_bind_param($stmt'i'$itemID);
        
$this->throwExceptionOnError();

        
mysqli_stmt_execute($stmt);
        
$this->throwExceptionOnError();


        
$rows = array();

        
mysqli_stmt_bind_result($stmt$row->id$row->dmname);

        while (
mysqli_stmt_fetch($stmt)) {
          
$row->dmdate_published = new DateTime($row->dmdate_published);
          
$row->checked_out_time = new DateTime($row->checked_out_time);
          
$row->dmlastupdateon = new DateTime($row->dmlastupdateon);
          
$rows[] = $row;
          
$row = new stdClass();
          
mysqli_stmt_bind_result($stmt$row->id$row->dmname);
        }

        
mysqli_stmt_bind_result($stmt$row->id$row->dmname);
                
mysqli_stmt_free_result($stmt);
            
mysqli_close($this->connection);
               
        return 
$rows;

    } 
führe ich jetzt die Methode direkt im FlashBuilder aus bekomme ich folgenden fehler:

Code:
InvocationTargetException:Beim Aufrufen der Methode ist ein Fehler aufgetreten. Überprüfen Sie Ihre Methodeneingaben oder den Servercode und versuchen Sie, die Methode erneut aufzurufen. 

Ursache: java.io.EOFException
in der server error.log finde ich jetzt nichts mehr als müsste das script funktionieren auf dem server weder methoden test noch debug geben aber daten hervor
chka ist offline   Mit Zitat antworten
Alt 02-07-2011, 18:21   #4 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
bitte schreib die Passage mal folgendermassen um:
PHP-Code:
        $rows = array();
        
        while (
$row mysqli_stmt_fetch_object($stmt)) {
            
$row->dmdate_published = new DateTime($row->dmdate_published);
            
$row->checked_out_time = new DateTime($row->checked_out_time);
            
$row->dmlastupdateon = new DateTime($row->dmlastupdateon);
            
$rows[] = $row;
        }
        
        
mysqli_stmt_free_result($stmt);
        
mysqli_close($this->connection); 
du kannst doch keine Eigenschaften einer Variale "binden", die zu dem Zeitpunkt noch nicht einmal definert wurde!? und diese unheilige Dreifaltigkeit mit mysql_stmt_bind_result finde ich auch nicht schön.

ansonsten:
Zitat:
... auf dem server weder methoden test noch debug geben aber daten hervor
triffts, ich versteh die Aussage auch nicht

Zitat:
daraufhin habe ich dann die zeile mal ein wenig editiert:
ich habe alle daten die ich NICHT brauche herausgenommen:
wieso hattest du vorher Daten angefordert, die du nicht brauchst?

und diese Fehlermeldung java.io.EOFException sagt mir, dass PHP vermutlich nicht das rausgeschmissen hat, was es sollte. vielleicht eine Exception per echo, die aber nicht schwerwiegend genug ist, um im error-log zu erscheinen.

wenn das die gateway.php ist, schreib dir irgendeine billige html-seite, die diese direkt aufruft, und die benötigten Parameter per POST übergibt, ansonsten ruf die entsprechende PHP-Datei direkt im Browser auf.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 02-07-2011, 19:16   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
Danke schon mal für die hilfe die service.php wurde direkt von flashbuilder generiert nach dem ich den dienst in flashbuilder erstellt habe. Also hatte ich direkt keinen zugriff auf die gestakktung des Scriptes

mit dem Satz:

Zitat:
in der server error.log finde ich jetzt nichts mehr als müsste das script funktionieren auf dem server weder methoden test noch debug geben aber daten hervor
meinte ich das beim debugen des apps und über die Funktion von FlashBuilder Methode testen kam nichts zurück, was aber jetzt klar ist.

Ich habe dann die klasse wie du geschrieben hast mal direkt aufgerufen und ja es kommt ein Fehler:

Code:
[Sat Jul 02 19:59:50 2011] [warn] [client 109.90.XXX.YYY] mod_fcgid: stderr: PHP Fatal error:  Using $this when not in object context in /var/www/webXXX/html/kreisroot/flash/services/JosdocmanService.php on line 179
wenn ich das richtig verstehe mag mein server die abfrage nicht von $this nicht, wie gesagt die ganze service.php wurde von Flash Builder erstellt

wenn ich den code jetzt so ändere wie du schreibst kommt der gleiche Fehler
chka ist offline   Mit Zitat antworten
Alt 03-07-2011, 10:18   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
ICh stehe echt auf dem schlauch also:

ich habe gestern die klasse und die funktion falsch angesprochen so muss es wohl sein:

PHP-Code:
$test=new JosdocmanService(); //Aufrufen der Klasse

$erg $test->getAllJos_docman(); // Aufrufen der Funktion mit Übergabe an Variable $erg
echo "<pre>";
print_r($erg); //Ausgabe des Arrays
echo "</pre>"
Und s.h. es kommen die gewünschten Daten :-)

Code:
Array
(
    [0] => stdClass Object
        (
            [id] => 126
            [dmname] => Kreistag 2011
            [dmdate_published] => DateTime Object
                (
                )

            [checked_out_time] => DateTime Object
                (
                )

            [dmlastupdateon] => DateTime Object
                (
                )

        )

    [1] => stdClass Object
        (
            [id] => 128
            [dmname] => 31. Kreishallenmeisterschaften
            [dmdate_published] => DateTime Object
                (
                )

            [checked_out_time] => DateTime Object
                (
                )

            [dmlastupdateon] => DateTime Object
                (
                )

        )

)
Starte ich jetzt in FlashBuilder -> Methode testen (php code ist von oben gelöscht) bekomme ich wieder meinen bekannten fehler

Code:
InvocationTargetException:Beim Aufrufen der Methode ist ein Fehler aufgetreten. Überprüfen Sie Ihre Methodeneingaben oder den Servercode und versuchen Sie, die Methode erneut aufzurufen. 

Ursache: java.io.EOFException

Geändert von chka (03-07-2011 um 10:28 Uhr)
chka ist offline   Mit Zitat antworten
Alt 03-07-2011, 11:32   #7 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
getAllJos_docman ist das elbe wie getJos_docmanAusschreibungen ???

zeig mal bitte den Code, den du Testest (afaik kann FB kein PHP)
und genau die PHP-Datei, die dieser Code aufruft
innereien schön und gut, aber wie bereits geschrieben deutet mir diese Fehlermeldung darauf hin, das in der Kommunikation zwischen diesen beiden Scripten irgendwas schiefläuft
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 03-07-2011, 12:01   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
du hast ne pn

JosdocmanService() ist die klasse und getAllJos_docman() ist die funktion die die jeweiligen abfragen herausgibt alle daten wurden von flash builder erstellt beim erstellen des dienstes
chka ist offline   Mit Zitat antworten
Alt 03-07-2011, 13:05   #9 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
nun,
mir sind nur zwei Dinge aufgefallen,
das eine ist eine Leerzeile nach dem schliessenden ?> in der JosdocmanService-Datei,
das andere war, dass die gateway.php nicht mit ?> geschlossen wurde.

wie PHP das zweite interpretiert weiss ich nicht mehr, das erste führt zu einer Ausgabe, mit der dein Client-Script möglicherweise nicht rechnet.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 03-07-2011, 13:20   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
Jo da hast du recht, hat aber leider auch nichts gebracht

Code:
InvocationTargetException:Beim Aufrufen der Methode ist ein Fehler aufgetreten. Überprüfen Sie Ihre Methodeneingaben oder den Servercode und versuchen Sie, die Methode erneut aufzurufen. 

Ursache: java.io.EOFException
Es kommt einfach keine Rückantwort vom Server, selbst im Netzwerküberwachung kommt keine rückantwort vom Server.

Gibt es ein Möglichkeit über die gateway.php datei die service und damit die Funktionen aufzurufen?
chka ist offline   Mit Zitat antworten
Alt 03-07-2011, 13:53   #11 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
hab grad noch zwei Dinge gefunden: Zend Amf $server->handle()
scheinbar muss es so lauten:
Code:
echo $server->handle();
und Zend Framework: Documentation: Zend_Amf_Server - Zend Framework Manual der Hinweis darauf, dass alle verlinkten Klassen und Methoden einen Docblock enthalten mussen, der wenigstens deren Parameter (Typen) und den Rückgabewert angeben.
was ich aber nicht genau weiss, ist ob dass nur BestPractice ist, oder ob Zend_Amf_Server tatsächlich die Dateien parst.
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (03-07-2011 um 13:55 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 03-07-2011, 14:01   #12 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
wir nähern uns dem Problem :-)

das echo habe ich raus genommen weil ich die gateway.php beim aufrufen über den browser zum download angeboten bekomme!?!

habe das ganze eben nochmals per flashbuilder Methode testen ausgeführt jetzt bekomme ich was anderes angezeigt was schon besser ausschaut:

Code:
InvocationTargetException:Beim Aufrufen der Methode ist ein Fehler aufgetreten. Überprüfen Sie Ihre Methodeneingaben oder den Servercode und versuchen Sie, die Methode erneut aufzurufen. 

Ursache: /0/onResultˇˇˇˇÅUflex.messaging.messages.AcknowledgeMessagecorrelationIdclientIddestinationmessageIdtimestamptimeToLiveheaders	bodyIF688B46D-6F75-435B-A481-7D1EFE68734AI5A7C9FFE-593D-85C8-6BAB-000032A1B07BI0BFA1F48-2FFC-7289-1A18-00006996A53A130969775100 id~dmnameKreistag 2011!dmdate_publishedBs}Ä!checked_out_timeBs}ÄdmlastupdateonBs}ÄÅ=31. Kreishallenmeisterschaften Bs}Ä"Bs}Ä$Bs}ÄÅEFrankfurter City-Halbmarathon 2011 Bs}Ä"Bs}Ä$Bs}ÄÅ5Auflerordentlichen Kreistag Bs}Ä"Bs}Ä$Bs}ÄÅWaldlauf 2011 Bs}Ä"Bs}Ä$Bs}ÄÅKKreisbestenka?mpfe der Schu?ler B/C/D Bs}Ä"Bs}Ä$Bs}ÄÅEBlock- / Mehrkampf Sch¸ler A/B/C/D Bs}Ä"Bs}Ä$Bs}Ä
hier sind shon mal Fragmente meiner abfrage drinnen scheint was an der Formatierung nicht in Ordnung zu seien?
chka ist offline   Mit Zitat antworten
Alt 03-07-2011, 14:18   #13 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
ich würde eher auf Kodierung Tippen. mir zeigt mein Editor an, dass die Datei ANSI ist!? ich hatte keine Probleme mehr mit dem encoding, seit ich ausschliesslich mit utf-8 arbeite
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 03-07-2011, 14:24   #14 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
das kann auch über meinem mac sein

die tabelle ist ne utf8_general_ci sie it die gleiche wie von meinem lokalhost wo es funktioniert?

im netzwerüberwachung steht noch folgendes: Text konnte nicht als gültiges XML/AMF/JSON geparst werden.

was auch auf die Formatierung schließt
chka ist offline   Mit Zitat antworten
Alt 03-07-2011, 16:23   #15 (permalink)
Neuer User
 
Registriert seit: Jul 2011
Beiträge: 23
Talking

Jipppiiiiiii

es geht, ich weiß nicht was ich gemacht habe abes geht jetzt

Danke Thomas für die Hilfe
chka ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Loader Zugriff ftp-Server dreib Flash 8 1 10-03-2011 06:49
Server zugriff blockiert für Flex unter Windows 7? stnswz Flex allgemein 4 07-08-2010 20:55
Zugriff auf NTP Server mit flash Posaidon Flash Einsteiger 0 15-05-2008 14:53
Nur bestimmten Server Zugriff erlauben MosquitoCom Server-Seite allgemein 2 22-11-2005 15:41
Zugriff auf fremden Server (PHP) WitchMaster Flash MX 8 26-05-2003 23:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele