【问题标题】:org.apache.jena.atlas.web.HttpException: 405 - HTTP method POST is not supported by this URLorg.apache.jena.atlas.web.HttpException: 405 - 此 URL 不支持 HTTP 方法 POST
【发布时间】:2018-04-03 06:19:49
【问题描述】:

我尝试构建 Fuseki 服务器,并向其添加一些数据。有我的功能来构建 Fuseki

(根据https://jena.apache.org/documentation/fuseki2/fuseki-embedded.html的example3):

public static FusekiServer createFusekiServer() {
        DatasetGraph ds = DatasetGraphFactory.createTxnMem();
        DataService dataService = new DataService(ds);
        dataService.addEndpoint(OperationName.Update, "");
        FusekiServer server = FusekiServer.create().setPort(3332).add("/data", dataService).build() ;

        server.start();
        return server;
    }

创建后,我想向它添加一些数据。

    public static void main(String[] args) { 
        FusekiSrv fusekiSrv = new FusekiSrv();
        String uri = "http://host:3332/ds";
        DatasetAccessor accessor = DatasetAccessorFactory.createHTTP(uri);

        Model model = ontology.loadOntology(pathName);
        FusekiServer fusekiServer = fusekiSrv.createFusekiServer();

        fusekiSrv.sendOntologyToFuseki(accessor, model);
        fusekiServer.stop();

}

    public static void sendOntologyToFuseki(DatasetAccessor accessor, Model model) {
            if (accessor != null) {
                accessor.add(model);
            }}

我的错误信息是:

Exception in thread "main" org.apache.jena.atlas.web.HttpException: 405 - HTTP method POST is not supported by this URL
    at org.apache.jena.riot.web.HttpOp.exec(HttpOp.java:1084)
    at org.apache.jena.riot.web.HttpOp.execHttpPost(HttpOp.java:711)
    at org.apache.jena.riot.web.HttpOp.execHttpPost(HttpOp.java:655)
    at org.apache.jena.web.DatasetGraphAccessorHTTP.doPost(DatasetGraphAccessorHTTP.java:192)
    at org.apache.jena.web.DatasetGraphAccessorHTTP.httpPost(DatasetGraphAccessorHTTP.java:182)
    at org.apache.jena.web.DatasetAdapter.add(DatasetAdapter.java:91)

我已经看到了这些问题:

405 HTTP method PUT is not supported by this URL

getting error HTTP Status 405 - HTTP method GET is not supported by this URL but not used `get` ever?

但这对我没有帮助。

【问题讨论】:

    标签: java http jena ontology fuseki


    【解决方案1】:

    .add("/data",

    然后

    uri = "http://host:3332/ds"

    “data”在一个,“ds”在另一个。

    您需要使用相同的服务名称。

    错误是 Jetty 拒绝请求。它没有到达 Fuseki。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2021-05-21
      • 2016-01-03
      • 2015-03-11
      • 1970-01-01
      • 2017-09-12
      • 2014-01-16
      相关资源
      最近更新 更多