diff --git a/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/GetCapabilitiesHandler.java b/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/GetCapabilitiesHandler.java index b79e5f609c..25a11aa4e2 100644 --- a/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/GetCapabilitiesHandler.java +++ b/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/GetCapabilitiesHandler.java @@ -904,7 +904,11 @@ void export200() } constraints.add( new Domain( "KVPEncoding", "TRUE" ) ); constraints.add( new Domain( "XMLEncoding", "TRUE" ) ); - constraints.add( new Domain( "SOAPEncoding", "FALSE" ) ); + if ( master.isSoapSupported() ) { + constraints.add( new Domain( "SOAPEncoding", "TRUE" ) ); + } else { + constraints.add( new Domain( "SOAPEncoding", "FALSE" ) ); + } constraints.add( new Domain( "ImplementsInheritance", "FALSE" ) ); constraints.add( new Domain( "ImplementsRemoteResolve", "FALSE" ) ); if ( master.isEnableResponsePaging() ) { diff --git a/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/WebFeatureService.java b/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/WebFeatureService.java index f17c5f513d..c73881f794 100644 --- a/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/WebFeatureService.java +++ b/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/WebFeatureService.java @@ -978,7 +978,7 @@ public void doSOAP( SOAPEnvelope soapDoc, HttpServletRequest request, HttpRespon throws ServletException, IOException, org.deegree.services.authentication.SecurityException { LOG.debug( "doSOAP" ); - if ( disableBuffering ) { + if ( !isSoapSupported() ) { super.doSOAP( soapDoc, request, response, multiParts, factory ); return; } @@ -1381,6 +1381,13 @@ public boolean isEnableResponsePaging() { return enableResponsePaging; } + /** + * @return true if soap is supported, false otherwise + */ + public boolean isSoapSupported() { + return !disableBuffering; + } + /** * Checks if a request version can be handled by this controller (i.e. if is supported by the implementation *and* * offered by the current configuration).