代码之家  ›  专栏  ›  技术社区  ›  Abdull David Silva Smith

DSpace的OAI servlet使用了错误的baseUrl

  •  1
  • Abdull David Silva Smith  · 技术社区  · 10 年前

    我使用以下名为的Tomcat上下文描述符 OAIHandler.xml 要部署DSpace 5.4的OAI servlet:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- inside file ${DSPACE_CATALINA_BASE}/conf/Catalina/localhost/OAIHandler.xml
    <Context docBase="c:/dspace/webapps/oai">
    </Context>
    

    因此,正如文件的名称 OAIHandler.xml ,Tomcat将OAI servlet部署在 http://localhost:8080/OAIHandler .

    访问URL,如 http://localhost:8080/OAIHandler/request?verb=Identify 工作-页面看起来不错。但此页面上的链接不使用 http://localhost:8080/OAIHandler/... 但是 http://localhost:8080/oai/... 相反

    我没有在部署任何servlet /oai ,因此这些链接指向任何地方。

    我注意到配置文件 config/modules/oai.cfg 可以有一个属性 dspace.oai.url ,所以我将其设置为 http://localhost:8080/OAIHandler -但我的问题仍然存在。

    我查看了OAI servlet使用的XSLT样式表( static/style.xsl ). 它使用XSLT表达式 /oai:OAI-PMH/oai:request/text() 构造链接的开始部分。相关的XML部分确实说 <request verb="Identify">http://localhost:8080/oai/request</request> 而不是预期的 <request verb="Identify">http://localhost:8080/OAIHandler/request</request> .

    有人能帮我指出错误的配置和/或导致生成错误的Java类吗 <request> XML元素?

    1 回复  |  直到 10 年前
        1
  •  3
  •   terrywb    10 年前

    听起来你检查了正确的文件。一个快速的尝试是清除您的oai缓存。运行…/dspace/bin/dspace-oai clean cache以强制重建缓存中的页面。