private static void exportOperationsMetadata( XMLStreamWriter writer, List<String> operations, DCPType dcp ) throws XMLStreamException { writer.writeStartElement( WCS_100_NS, "Request" ); writer.writeDefaultNamespace( WCS_100_NS ); for ( String operation : operations ) { writer.writeStartElement( WCS_100_NS, operation ); writer.writeStartElement( WCS_100_NS, "DCPType" ); writer.writeStartElement( WCS_100_NS, "HTTP" ); if ( !isEmpty( OGCFrontController.getHttpGetURL() ) ) { writer.writeStartElement( WCS_100_NS, "Get" ); writer.writeNamespace( XLINK_PREFIX, XLN_NS ); writeElement( writer, WCS_100_NS, "OnlineResource", XLN_NS, "href", OGCFrontController.getHttpGetURL() ); writer.writeEndElement(); // Get } if ( !isEmpty( OGCFrontController.getHttpPostURL() ) ) { writer.writeStartElement( WCS_100_NS, "Post" ); writer.writeNamespace( XLINK_PREFIX, XLN_NS ); writeElement( writer, WCS_100_NS, "OnlineResource", XLN_NS, "href", OGCFrontController.getHttpPostURL() ); writer.writeEndElement(); // Post } writer.writeEndElement(); // HTTP writer.writeEndElement(); // DCPType writer.writeEndElement(); // operation } writer.writeEndElement(); // Request }
/** * Creates a new {@link GmlDescribeFeatureTypeHandler} instance. * * @param gmlFormat * never <code>null</code> */ public GmlDescribeFeatureTypeHandler( GmlFormat gmlFormat ) { super( gmlFormat ); try { File wsBaseDir = OGCFrontController.getServiceWorkspace().getLocation(); File appSchemaBaseDir = new File( wsBaseDir, APPSCHEMAS ); this.wsAppSchemaBaseURL = appSchemaBaseDir.toURI().toURL().toString(); } catch ( MalformedURLException e ) { throw new RuntimeException( e ); } URL baseUrl = DescribeFeatureType.class.getResource( "/META-INF/SCHEMAS_OPENGIS_NET" ); if ( baseUrl != null ) { this.ogcSchemaJarBaseURL = baseUrl.toString(); LOG.debug( "GmlDescribeFeatureTypeHandler OGC Schema Jar Base URL: '" + this.ogcSchemaJarBaseURL + "'" ); } }
/** * Returns the HTTP URL for accessing the {@link ResourcesServlet}. * <p> * NOTE: This method will only return a correct result if the calling thread originated in the * {@link #doGet(HttpServletRequest, HttpServletResponse)} or * {@link #doPost(HttpServletRequest, HttpServletResponse)} of this class (or has been spawned as a child thread by * such a thread). * </p> * * @return URL, never <code>null</code> (without trailing slash or question mark) */ public static String getResourcesUrl() { return getContext().getResourcesUrl(); }
private static String getHttpURL() { RequestContext context = getContext(); String xForwardedHost = context.getXForwardedHost(); if ( xForwardedHost != null && xForwardedHost != "" ) { String contextServiceUrl = context.getServiceUrl(); try { URL serviceUrl = new URL( contextServiceUrl ); return buildUrlFromForwardedHeader( context, serviceUrl ); } catch ( MalformedURLException e ) { LOG.warn( "Could not parse service URL as URL: " + contextServiceUrl ); } } return context.getServiceUrl(); }
public String getWebURL() { String url = OGCFrontController.getHttpGetURL() + "service=WPS&version=1.0.0&request=GetOutput&identifier=" + id; return url; }
protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { HttpResponseBuffer responseBuffer = createHttpResponseBuffer( request, response ); logHeaders( request ); addHeaders( responseBuffer ); responseBuffer = handleCompression( responseBuffer ); OWS ows = null; try { ows = determineOWSByPathQuirk( request ); } catch ( OWSException e ) { sendException( null, e, responseBuffer, null ); return; sendException( ows, ex, responseBuffer, null ); return; List<FileItem> multiParts = checkAndRetrieveMultiparts( request ); if ( isXML ) { XMLStreamReader xmlStream = null; if ( isSOAPRequest( xmlStream ) ) { dispatchSOAPRequest( xmlStream, request, responseBuffer, multiParts ); } else { dispatchXMLRequest( xmlStream, request, responseBuffer, multiParts ); DEFAULT_ENCODING ); LOG.debug( "parameter map: " + normalizedKVPParams );
public static void restart( String path, HttpServletResponse resp ) throws IOException, ServletException { Pair<DeegreeWorkspace, String> p = getWorkspaceAndPath( path ); resp.setContentType( "text/plain" ); try { if ( p.second != null ) { Workspace ws = p.first.getNewWorkspace(); List<ResourceIdentifier<?>> ids = WorkspaceUtils.getPossibleIdentifiers( ws, p.second ); for ( ResourceIdentifier<?> id : ids ) { WorkspaceUtils.reinitializeChain( ws, id ); } return; } OGCFrontController fc = OGCFrontController.getInstance(); fc.setActiveWorkspaceName( p.first.getName() ); fc.reload(); } catch ( Exception e ) { IOUtils.write( "Error while reloading: " + e.getLocalizedMessage() + "\n", resp.getOutputStream() ); return; } IOUtils.write( "Restart complete.", resp.getOutputStream() ); }
/** * @return the service workspace */ public static DeegreeWorkspace getServiceWorkspace() { return getInstance().workspace; }
private String createUrlWithStartindex( Map<String, String> kvpGetFeature, int startIndex ) { kvpGetFeature.put( "STARTINDEX", "" + startIndex ); return OGCFrontController.getHttpGetURL() + KVPUtils.toQueryString( kvpGetFeature ); }
/** * Returns the {@link ModuleInfo}s for the deegree modules accessible by the webapp classloader. * * @return module infos, never <code>null</code>, but can be empty */ public static Collection<ModuleInfo> getModulesInfo() { return getInstance().modulesInfo; }
private static void exportOperationsMetadata( XMLStreamWriter writer ) throws XMLStreamException { List<Operation> operations = new LinkedList<Operation>(); List<DCP> dcps = null; try { DCP dcp = new DCP( new URL( OGCFrontController.getHttpGetURL() ), new URL( OGCFrontController.getHttpPostURL() ) ); dcps = Collections.singletonList( dcp ); } catch ( MalformedURLException e ) { // should never happen } List<Domain> params = new ArrayList<Domain>(); List<Domain> constraints = new ArrayList<Domain>(); List<OMElement> mdEls = new ArrayList<OMElement>(); operations.add( new Operation( "GetCapabilities", dcps, params, constraints, mdEls ) ); operations.add( new Operation( "DescribeProcess", dcps, params, constraints, mdEls ) ); operations.add( new Operation( "Execute", dcps, params, constraints, mdEls ) ); OperationsMetadata operationsMd = new OperationsMetadata( operations, params, constraints, null ); exportOperationsMetadata110( writer, operationsMd ); }
private void doGetResponseDocument( String responseId, HttpResponseBuffer response ) { LOG.trace( "doGetResponseDocument invoked, requested stored response document: " + responseId ); ResponseDocumentStorage resource = storageManager.lookupResponseDocumentStorage( responseId, getHttpGetURL() ); executeHandler.sendResponseDocument( response, resource ); LOG.trace( "doGetResponseDocument finished" ); }
@Override protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { String resourcePath = request.getPathInfo(); if ( !resourcePath.startsWith( "/" ) ) { throw new ServletException( "Requested resource path does not start with '/'." ); } if ( !resourcePath.toLowerCase().endsWith( ".xsd" ) ) { throw new ServletException( "Requested resource path does not end with '.xsd'." ); } resourcePath = resourcePath.substring( 1 ); LOG.debug( "Requested resource: " + resourcePath ); File wsDir = OGCFrontController.getServiceWorkspace().getLocation(); File resource = new File( wsDir, resourcePath ); if ( !resource.exists() ) { throw new ServletException( "Resource " + resourcePath + " does not exist." ); } if ( !resource.isFile() ) { throw new ServletException( "Resource " + resourcePath + " does not denote a file." ); } sendResource( resource, response ); }
public String getRestURL() { return OGCFrontController.getContext().getResourcesUrl() + "../rest" + UriBuilder.fromResource( WSDLResource.class ).path( WSDLResource.class, "get" ).build( "ALL" ).toString(); } }
/** * @return the service configuration */ public static OwsManager getServiceConfiguration() { return getInstance().serviceConfiguration; }
exportOperationsMetadata( writer, OGCFrontController.getHttpGetURL(), OGCFrontController.getHttpPostURL(), OWS_NS );
public WMTSCapabilitiesWriter( XMLStreamWriter writer, ServiceIdentification identification, ServiceProvider provider, List<Theme> themes, String mdurltemplate, FeatureInfoManager mgr ) { this.writer = writer; this.provider = provider; this.themes = themes; if ( mdurltemplate == null || mdurltemplate.isEmpty() ) { mdurltemplate = OGCFrontController.getHttpGetURL(); if ( !( mdurltemplate.endsWith( "?" ) || mdurltemplate.endsWith( "&" ) ) ) { mdurltemplate += "?"; } mdurltemplate += "service=CSW&request=GetRecordById&version=2.0.2&outputSchema=http%3A//www.isotc211.org/2005/gmd&elementSetName=full&id=${metadataSetId}"; } this.mdurltemplate = mdurltemplate; this.mdwriter = new WmtsCapabilitiesMetadataWriter( writer, identification ); this.layerWriter = new WmtsLayerWriter( mgr, writer, this ); }
public WSDL( String wsPath ) { DefaultWorkspace ws = (DefaultWorkspace) OGCFrontController.getServiceWorkspace().getNewWorkspace(); wsdlFile = new File( ws.getLocation(), wsPath ); }
throws ServletException { String userAgent = null; if ( OGCFrontController.getContext() != null ) { userAgent = OGCFrontController.getContext().getUserAgent();
private static void addHeaders( HttpServletResponse response ) { // add cache control headers response.addHeader( "Cache-Control", "no-cache, no-store" ); // add deegree header response.addHeader( "deegree-version", getInstance().version ); }