IntelliJ 2016.2.4 (Windows 7)의 프로젝트에서 표준 "Jetty 서버"실행 구성을 사용하여 로컬 Jetty 9.3 서버에 배포하도록 설정되었습니다 .IntelliJ에서 Jetty 서버에 정적 파일을 다시로드 할 수 없음
일반 Java 클래스를 다시로드하면 (디버그 모드에서) 정상적으로 작동합니다. 나는 정적 파일 main.js
을 다시 배포하려고 할 때, IntelliJ에 다음과 같은 오류가 표시
java.io.FileNotFoundException: D:\Projects\portal\build\exploded\portal-project\js\main.js (The requested operation cannot be performed on a file with a user-mapped section open)
this에 따라, 나는 부두 분배 디렉토리의 etc/webdefault.xml
에 수정을
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value> <!--Changed from <param-value>false</param-value>-->
</init-param>
를 만들기 위해 노력했다. 배포판에는 다른 변경 사항이 없습니다. 특히 jetty.deploy.defaultsDescriptorPath
의 기본값은 <Property name="jetty.home" default="." />/etc/webdefault.xml
이고 etc/jetty-deploy.xml
입니다.
불행히도 이것은 별다른 차이가 없습니다. this answer에 제안 된대로 maxCachedFiles
을 0
으로 설정해도 작동하지 않았습니다.
Jetty Maven 플러그인이 문제를 해결할 수 있지만 프로젝트에서 Maven (또는 Gradle)을 사용하지 않는 어딘가가 있습니다.
편집 : 그것은 어떤 의미가 있는지 잘 모르겠지만, 시작에 나는 로그 라인을 얻을
2016-09-21 17:27:33.275:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended. [...]
필자는 Windows 10에 있었지만 이것을 복제 할 수 없었습니다. 이상하게도, DefaultServlet을 사용하여 Win10에서 오류가 전혀 나타나지 않습니다. ** ** ResourceHandler를 사용할 때 오류가 발생할 수 있지만 webdefault.xml에서 변경하면 오류가 지워집니다. web.xml 또는 다른 코드에서이 호출과 다른 호출이 없다고 확신합니까? – Walkerwatch