Soapclient in Shopware 5.2 custom plugin

Hallo, 

In der neuen Plugin Struktur wirft der Aufruf von $client = new Soapclient (…), einen Fehler aus (503 Service unavailable), während mit der alten Struktur die Abfrage ohne Fehler ausgeführt wird.

Kann da jemand helfen?

Neue Struktur (Fehler 503 Service unavailable):

 'onPreDispatchCheckout'
        );
       
   }
    /***
     * @param \Enlight_Event_EventArgs $arguments
     */
    public function onPreDispatchCheckout(\Enlight_Event_EventArgs $arguments)
    {

        /**@var $subject Shopware_Controllers_Frontend_Checkout */
        $subject = $arguments->getSubject();
        $request = $subject->Request();
        $response = $subject->Response();
        $action = $request->getActionName();
        $view = $subject->View();
        if(!$request->isDispatched()
			|| $response->isException() 
            || !$arguments->getSubject()->View()->hasTemplate()
			) {
			return;
		}
         try {
           $client = new SoapClient('http://www.webservicex.net/geoipservice.asmx? WSDL',array('cache_wsdl' => WSDL_CACHE_NONE,'trace' => 1, 'exceptions' => true ));

         } catch(Exception $e) {
           var_dump($e);
         }
     }	 
}

Alte Struktur (ohne Fehler)

subscribeEvent('Enlight_Controller_Action_PreDispatch_Frontend','onPreDispatchCheckout',1);
    }
     public function onPreDispatchCheckout(Enlight_Event_EventArgs $arguments)
    {

        /**@var $subject Shopware_Controllers_Frontend_Checkout */
        $subject = $arguments->getSubject();
        $request = $subject->Request();
        $response = $subject->Response();
        $action = $request->getActionName();
        $view = $subject->View();
        if(!$request->isDispatched()
			|| $response->isException() 
            || !$arguments->getSubject()->View()->hasTemplate()
			) {
			return;
		}
        try {
            $client = new SoapClient('http://www.webservicex.net/geoipservice.asmx?WSDL',array('cache_wsdl' => WSDL_CACHE_NONE,'trace' => 1, 'exceptions' => true ));
        } catch(Exception $e) {
            var_dump($e);
        }
     }
}

 

Ist der 503 nicht eine Rückgabe des SOAP Servers? Also wird der Fehler beim Catch geworfen oder schon an einer anderen Stelle? Was ist die genaue Fehlerbeschreibung im Log zum 503?

Wie Syononymous schon gesagt hat wäre eine richtige Fehlermeldung immer hilfreich. Schau dir mal Folgendes an. Dort wird dir erklärt, wie man in Shopware die Fehlerausgabe aktiviert.

Ansonsten wäre mir bei deinem Codesnippet folgendes aufgefallen: Im neuen Plugin setzt du einen Namespace. In der alten Version warst du ja im Shopware Root-Namespace. => wenn du diesen änderst steht dir die Klasse SoapClient nicht mehr zur Verfügung. =>Füge einen Backslash vor den Klassennamen:

$client = new \SoapClient(…

 

Viele Grüße

 

1 „Gefällt mir“

Simkli hat schon die Lösung gehabt, durch den namespace muss der Backslash vor den Klassennamen. Danke für die schnelle Hilfe, auch der Link zur Fehlerausgabe ist hilfreich, durch den 503 bin ich völlig fehlgeleitet worden…