public function getServerBuilder()
 {
     if (null === $this->serverBuilder) {
         $this->serverBuilder = SoapServerBuilder::createWithDefaults()->withWsdl($this->getWsdlFile())->withClassmap($this->getServiceDefinition()->getTypeRepository()->getClassmap())->withTypeConverters($this->converters);
         if (null !== $this->options['cache_type']) {
             $this->serverBuilder->withWsdlCache($this->options['cache_type']);
         }
     }
     return $this->serverBuilder;
 }
 /**
  * Converts an Exception to a SoapFault Response.
  *
  * @param Request              $request   The request
  * @param FlattenException     $exception A FlattenException instance
  * @param DebugLoggerInterface $logger    A DebugLoggerInterface instance
  *
  * @return Response
  *
  * @throws \LogicException When the request query parameter "_besimple_soap_webservice" does not exist
  */
 public function exceptionAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null)
 {
     if (!($webservice = $request->query->get('_besimple_soap_webservice'))) {
         throw new \LogicException(sprintf('The parameter "%s" is required in Request::$query parameter bag to generate the SoapFault.', '_besimple_soap_webservice'), null, $e);
     }
     $view = 'TwigBundle:Exception:' . ($this->container->get('kernel')->isDebug() ? 'exception' : 'error') . '.txt.twig';
     $code = $exception->getStatusCode();
     $details = $this->container->get('templating')->render($view, array('status_code' => $code, 'status_text' => isset(Response::$statusTexts[$code]) ? Response::$statusTexts[$code] : '', 'exception' => $exception, 'logger' => $logger));
     $handler = new ExceptionHandler($exception, $details);
     if ($soapFault = $request->query->get('_besimple_soap_fault')) {
         $handler->setSoapFault($soapFault);
         // Remove parameter from query because cannot be Serialized in Logger
         $request->query->remove('_besimple_soap_fault');
     }
     $server = SoapServerBuilder::createWithDefaults()->withWsdl(__DIR__ . '/../Handler/wsdl/exception.wsdl')->withWsdlCacheNone()->withHandler($handler)->build();
     ob_start();
     $server->handle('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://besim.pl/soap/exception/1.0/">' . '<soapenv:Header/>' . '<soapenv:Body>' . '<ns:exception />' . '</soapenv:Body>' . '</soapenv:Envelope>');
     return new Response(ob_get_clean());
 }