0

每当我尝试在特定机器上部署 Jetty(与其他机器一起使用)时,我都会遇到问题,该机器是非英语 Windows 机器。

[2013-02-15 04:14:05.894] [错误] Thread-39
System.err
java.lang.IllegalStateException: 无法在 C:\Windows\system32\config\systemprofile\AppData\Local\Temp\ 中创建 tmp 目录上下文 oejwWebAppContext{/spdy,null},C:\Program Files\server\work\tmp\my-app\webapps\spdy.war

[2013-02-15 04:14:05.894] [错误] Thread-39
System.err
java.io.IOException: Žw'肳‚ꂽƒpƒX‚ªŒ©‚‚©‚è‚Ü‚¹‚ ñB

我试图查看这是否是与管理员权限相关的问题,但不是,我正在使用管理员权限启动该进程。

任何建议都非常感谢。

谢谢!

4

2 回答 2

5

能够找出问题所在。如果 TEMP 文件夹不存在,Jetty 不会创建它,因此您必须检查自己并在临时文件夹不存在时创建它。

在这种情况下,它最终是: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\ 不存在,尽管 C:\Windows\system32\config\systemprofile\AppData\Local\ 确实存在并且 TEMP= C:\Windows\system32\config\systemprofile\AppData\Local\Temp\

在 C:\Windows\system32\config\systemprofile\AppData\Local\ 中创建“Temp”目录解决了这个问题!

于 2013-02-27T00:20:17.143 回答
1

这是一个很老的帖子,但最近我也遇到了同样的问题,所以我也想分享一下我的经验。

导致问题的部分代码可以在这里找到:http: //download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/webapp/WebInfConfiguration.html#225resolveTempDirectory (WebAppContext context)方法(检查最后几行该方法,第三种情况在评论中解释)。因此,该问题的另一种解决方法也可以将默认java.io.tmpdir文件夹更改为指向现有文件夹。

我已经检查了一些系统,并且C:\Windows\system32\config\systemprofile\AppData\Local\TempWindows 上不存在文件夹:7、2008、2012。

于 2015-04-28T12:14:57.357 回答