有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java元映射运行本地raise“查询Prolog服务器时出错:连接被拒绝”

我遵循this步骤在Linux平台上运行Metamap Java API 2014 (Main page from metamap

启动Metamap服务器后,我在MetaMapJavaAPI包中运行了一些主类,但它会引发Error when querying Prolog Server: Connection refused

然后使用以下命令检查Metamap服务器是否在端口8066上运行: sudo netstat -tulpn | grep 8066

但我什么也没收到

以前有没有人遇到过同样的问题,并且知道解决方法


共 (3) 个答案

  1. # 1 楼答案

    问题可能与超时有关:如果未为MetaMapImpl指定超时参数,则将其设置为0,因此实例会将任何延迟解释为失败并报告错误

    将超时时间增加到合理的值(对我来说500毫秒就足够了)

  2. # 2 楼答案

    在运行skrmedpostctl(以及可选的单词sense diambiguation server wsdserverctl)之后,需要运行mmserver可执行文件,以便将Java API用于Metamap。这可以通过运行命令来运行

    ./bin/mmserver{two-digit-year}
    

    另外,确保在类路径中包含metamap和prolog bean的两个jar文件(在IDE中,可以通过向这些jar添加依赖项来实现)

  3. # 3 楼答案

    在收到错误SPIO_E_太多打开的文件并失去与mmserver的连接后,我收到了这个错误。我试图在循环中构造MetaMapApiImpl的实例,并调用processCitationsFromString数千次。因此,在大约100次重复之后,我得到了错误SPIO_E_太多打开的文件

    我修复这个错误的方法是通过调用函数disconnect(),在循环结束时简单地断开api