Package org.openrdf.http.server

Examples of org.openrdf.http.server.ClientHTTPException


    else if ("DELETE".equals(reqMethod)) {
      logger.info("DELETE data from repository");
      result = getDeleteDataResult(repository, repositoryCon, request, response);
    }
    else {
      throw new ClientHTTPException(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "Method not allowed: "
          + reqMethod);
    }

    return result;
  }
View Full Code Here


      return new ModelAndView(EmptySuccessView.getInstance());
    }
    catch (SAXParseException e) {
      ErrorInfo errInfo = new ErrorInfo(ErrorType.MALFORMED_DATA, e.getMessage());
      throw new ClientHTTPException(SC_BAD_REQUEST, errInfo.toString());
    }
    catch (SAXException e) {
      throw new ServerHTTPException("Failed to parse transaction data: " + e.getMessage(), e);
    }
    catch (IOException e) {
View Full Code Here

    String mimeType = HttpServerUtil.getMIMEType(request.getContentType());

    RDFFormat rdfFormat = Rio.getParserFormatForMIMEType(mimeType);
    if (rdfFormat == null) {
      throw new ClientHTTPException(SC_UNSUPPORTED_MEDIA_TYPE, "Unsupported MIME type: " + mimeType);
    }

    ValueFactory vf = repository.getValueFactory();

    Resource[] contexts = ProtocolUtil.parseContextParam(request, CONTEXT_PARAM_NAME, vf);
    URI baseURI = ProtocolUtil.parseURIParam(request, BASEURI_PARAM_NAME, vf);

    if (baseURI == null) {
      baseURI = vf.createURI("foo:bar");
      logger.info("no base URI specified, using dummy '{}'", baseURI);
    }

    InputStream in = request.getInputStream();
    try {
      boolean wasAutoCommit = repositoryCon.isAutoCommit();
      repositoryCon.setAutoCommit(false);

      if (replaceCurrent) {
        repositoryCon.clear(contexts);
      }
      repositoryCon.add(in, baseURI.toString(), rdfFormat, contexts);

      repositoryCon.setAutoCommit(wasAutoCommit);

      return new ModelAndView(EmptySuccessView.getInstance());
    }
    catch (UnsupportedRDFormatException e) {
      throw new ClientHTTPException(SC_UNSUPPORTED_MEDIA_TYPE, "No RDF parser available for format "
          + rdfFormat.getName());
    }
    catch (RDFParseException e) {
      ErrorInfo errInfo = new ErrorInfo(ErrorType.MALFORMED_DATA, e.getMessage());
      throw new ClientHTTPException(SC_BAD_REQUEST, errInfo.toString());
    }
    catch (IOException e) {
      throw new ServerHTTPException("Failed to read data: " + e.getMessage(), e);
    }
    catch (RepositoryException e) {
View Full Code Here

    else if (METHOD_POST.equals(reqMethod)) {
      logger.info("POST query");

      String mimeType = HttpServerUtil.getMIMEType(request.getContentType());
      if (!Protocol.FORM_MIME_TYPE.equals(mimeType)) {
        throw new ClientHTTPException(SC_UNSUPPORTED_MEDIA_TYPE, "Unsupported MIME type: " + mimeType);
      }
    }

    String queryStr = request.getParameter(QUERY_PARAM_NAME);
    logger.debug("query = {}", queryStr);

    if (queryStr != null) {
      Query query = getQuery(repository, repositoryCon, queryStr, request, response);

      View view;
      Object queryResult;
      FileFormatServiceRegistry<? extends FileFormat, ?> registry;

      if (query instanceof TupleQuery) {
        TupleQuery tQuery = (TupleQuery)query;

        queryResult = tQuery.evaluate();
        registry = TupleQueryResultWriterRegistry.getInstance();
        view = TupleQueryResultView.getInstance();
      }
      else if (query instanceof GraphQuery) {
        GraphQuery gQuery = (GraphQuery)query;

        queryResult = gQuery.evaluate();
        registry = RDFWriterRegistry.getInstance();
        view = GraphQueryResultView.getInstance();
      }
      else if (query instanceof BooleanQuery) {
        BooleanQuery bQuery = (BooleanQuery)query;

        queryResult = bQuery.evaluate();
        registry = BooleanQueryResultWriterRegistry.getInstance();
        view = BooleanQueryResultView.getInstance();
      }
      else {
        throw new ClientHTTPException(SC_BAD_REQUEST, "Unsupported query type: "
            + query.getClass().getName());
      }

      Object factory = ProtocolUtil.getAcceptableService(request, response, registry);

      Map<String, Object> model = new HashMap<String, Object>();
      model.put(QueryResultView.FILENAME_HINT_KEY, "query-result");
      model.put(QueryResultView.QUERY_RESULT_KEY, queryResult);
      model.put(QueryResultView.FACTORY_KEY, factory);

      return new ModelAndView(view, model);
    }
    else {
      throw new ClientHTTPException(SC_BAD_REQUEST, "Missing parameter: " + QUERY_PARAM_NAME);
    }
  }
View Full Code Here

    if (queryLnStr != null) {
      queryLn = QueryLanguage.valueOf(queryLnStr);

      if (queryLn == null) {
        throw new ClientHTTPException(SC_BAD_REQUEST, "Unknown query language: " + queryLnStr);
      }
    }

    // determine if inferred triples should be included in query evaluation
    boolean includeInferred = ProtocolUtil.parseBooleanParam(request, INCLUDE_INFERRED_PARAM_NAME, true);

    // build a dataset, if specified
    String[] defaultGraphURIs = request.getParameterValues(DEFAULT_GRAPH_PARAM_NAME);
    String[] namedGraphURIs = request.getParameterValues(NAMED_GRAPH_PARAM_NAME);

    DatasetImpl dataset = null;
    if (defaultGraphURIs != null || namedGraphURIs != null) {
      dataset = new DatasetImpl();

      if (defaultGraphURIs != null) {
        for (String defaultGraphURI : defaultGraphURIs) {
          try {
            URI uri = repository.getValueFactory().createURI(defaultGraphURI);
            dataset.addDefaultGraph(uri);
          }
          catch (IllegalArgumentException e) {
            throw new ClientHTTPException(SC_BAD_REQUEST, "Illegal URI for default graph: "
                + defaultGraphURI);
          }
        }
      }

      if (namedGraphURIs != null) {
        for (String namedGraphURI : namedGraphURIs) {
          try {
            URI uri = repository.getValueFactory().createURI(namedGraphURI);
            dataset.addNamedGraph(uri);
          }
          catch (IllegalArgumentException e) {
            throw new ClientHTTPException(SC_BAD_REQUEST, "Illegal URI for named graph: "
                + namedGraphURI);
          }
        }
      }
    }

    try {
      result = repositoryCon.prepareQuery(queryLn, queryStr);
      result.setIncludeInferred(includeInferred);

      if (dataset != null) {
        result.setDataset(dataset);
      }

      // determine if any variable bindings have been set on this query.
      @SuppressWarnings("unchecked")
      Enumeration<String> parameterNames = request.getParameterNames();

      while (parameterNames.hasMoreElements()) {
        String parameterName = parameterNames.nextElement();

        if (parameterName.startsWith(BINDING_PREFIX) && parameterName.length() > BINDING_PREFIX.length())
        {
          String bindingName = parameterName.substring(BINDING_PREFIX.length());
          Value bindingValue = ProtocolUtil.parseValueParam(request, parameterName,
              repository.getValueFactory());
          result.setBinding(bindingName, bindingValue);
        }
      }
    }
    catch (UnsupportedQueryLanguageException e) {
      ErrorInfo errInfo = new ErrorInfo(ErrorType.UNSUPPORTED_QUERY_LANGUAGE, queryLn.getName());
      throw new ClientHTTPException(SC_BAD_REQUEST, errInfo.toString());
    }
    catch (MalformedQueryException e) {
      ErrorInfo errInfo = new ErrorInfo(ErrorType.MALFORMED_QUERY, e.getMessage());
      throw new ClientHTTPException(SC_BAD_REQUEST, errInfo.toString());
    }
    catch (RepositoryException e) {
      logger.error("Repository error", e);
      response.sendError(SC_INTERNAL_SERVER_ERROR);
    }
View Full Code Here

    else if ("DELETE".equals(reqMethod)) {
      logger.info("DELETE namespaces");
      return getClearNamespacesResult(request, response);
    }

    throw new ClientHTTPException(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "Method not allowed: "
        + reqMethod);
  }
View Full Code Here

    if (repositoryID != null) {
      try {
        Repository repository = repositoryManager.getRepository(repositoryID);

        if (repository == null) {
          throw new ClientHTTPException(SC_NOT_FOUND, "Unknown repository: " + repositoryID);
        }

        repositoryCon = repository.getConnection();
        request.setAttribute(REPOSITORY_ID_KEY, repositoryID);
        request.setAttribute(REPOSITORY_KEY, repository);
View Full Code Here

  {
    try {
      String namespace = repositoryCon.getNamespace(prefix);

      if (namespace == null) {
        throw new ClientHTTPException(SC_NOT_FOUND, "Undefined prefix: " + prefix);
      }

      Map<String, Object> model = new HashMap<String, Object>();
      model.put(SimpleResponseView.CONTENT_KEY, namespace);
View Full Code Here

  {
    String namespace = IOUtil.readString(request.getReader());
    namespace = namespace.trim();

    if (namespace.length() == 0) {
      throw new ClientHTTPException(SC_BAD_REQUEST, "No namespace name found in request body");
    }
    // FIXME: perform some sanity checks on the namespace string

    try {
      repositoryCon.setNamespace(prefix, namespace);
View Full Code Here

TOP

Related Classes of org.openrdf.http.server.ClientHTTPException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.