【问题标题】:Myrrix java.io.IOException upon ingest when following the tutorial遵循教程时摄取时 Myrrix java.io.IOException
【发布时间】:2013-06-25 17:37:56
【问题描述】:

我正在尝试按照教程评估 Myrrix 是否满足我的协同过滤需求: http://myrrix.com/quick-start/

在我的 Windows 7 笔记本电脑上,我能够运行独立的 java 二进制文件。我可以在端口 80 上加载 Web 界面。但是,当我去摄取示例 audioscrober 数据时,我收到以下消息:

Error 500 : /ingest

java.io.IOException: The temporary upload location [C:\Users\XXXXXX\AppData\Local\Temp\1372181071432-0\work\Tomcat\localhost\_\tmp] is not valid
at org.apache.catalina.connector.Request.parseParts(Request.java:2698)
at org.apache.catalina.connector.Request.getParts(Request.java:2640)
at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1076)
at net.myrrix.web.servlets.IngestServlet.doPost(IngestServlet.java:64)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at net.myrrix.web.servlets.AbstractMyrrixServlet.service(AbstractMyrrixServlet.java:155)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

我希望只需在命令行中添加“--localInputDir”指令即可解决问题。但是,这似乎与 Tomcat 服务器尝试上传的位置无关。

如何修改独立二进制文件,以便能够成功提取样本数据进行训练?

【问题讨论】:

    标签: myrrix


    【解决方案1】:

    奇怪。如果我按照提供的错误中的路径进行操作,则缺少最终的“tmp”目录。如果我在 Windows 资源管理器中手动添加它并尝试重新摄取,事情似乎按计划进行。

    查看日志,看来学习过程已经开始了。

    【讨论】:

    • 是的,这行得通——我发现在某些情况下,Windows 本身的系统临时目录不正确。也就是说,java 全局使用了一个不存在的临时目录。如果是这种情况,设置 java.io.tmpdir 可以解决这个问题。然后,是的,您需要在 Tomcat 的工作区中创建 tmp。这部分看起来像 Windows 上的 Tomcat 错误。
    【解决方案2】:

    我以前听说过,但无法重现。由于某种原因,Tomcat 分配的临时目录要么没有实际创建,要么无法访问。

    您可以尝试删除以“137...”开头的整个目录,以确保 Tomcat 再创建一个新目录。或尝试调查此路径,看看您是否可以创建和/或使其可访问该临时目录。

    这应该由 Tomcat 的javax.servlet.context.tempdir 系统属性控制。您也可以尝试将其设置为其他位置,例如 /tmp

    据我所知,Tomcat 和 Windows 有点奇怪,但它可能是暂时的并且可以根据上述情况进行修复。

    【讨论】:

    • 您好,您找到解决方法了吗?由于未创建 tmp 目录并且我无法更改 Tomcat 使用的路径,因此一直困扰着我。唯一有效的是每次手动创建目录,但显然这不是一个永久的解决方案......
    • 我这里没有任何好的附加解决方案。它应该存在,但在某些情况下不存在,我不知道为什么。
    猜你喜欢
    • 2020-04-05
    • 2012-09-24
    • 2011-09-03
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多