2016-09-21 2 views
1

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에 제안 된대로 maxCachedFiles0으로 설정해도 작동하지 않았습니다.

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. [...]

+0

필자는 Windows 10에 있었지만 이것을 복제 할 수 없었습니다. 이상하게도, DefaultServlet을 사용하여 Win10에서 오류가 전혀 나타나지 않습니다. ** ** ResourceHandler를 사용할 때 오류가 발생할 수 있지만 webdefault.xml에서 변경하면 오류가 지워집니다. web.xml 또는 다른 코드에서이 호출과 다른 호출이 없다고 확신합니까? – Walkerwatch

답변

1

나는 윈도우 10 프로, 실행하게 IntelliJ IDEA 2016년 3월 4일 및 부두 9.3 오전 .10.v20160621 - 나는 할리의 결과를 복제 할 수있었습니다. webdefault.xml 편집이 도움이되지 않았습니다.

How to make Jetty dynamically load "static" pages 답변 있음 - webapp의 web.xml에 컨텍스트 매개 변수 추가.

그러나 Jety가 적어도 몇 년 동안 사용하지 않은 "org.mortbay"라는 네임 스페이스를 참조하기 때문에 새 버전의 Jetty에서는 작동하지 않습니다. 여기 나를 위해 일하는 것이있다. 기본적으로 같은 다른 게시물로 일하지만,이 조각은 org.eclipse 사용은 org.mortbay하지 :

<context-param> 
    <param-name>org.eclipse.jetty.servlet.Default.useFileMappedBuffer</param-name> 
    <param-value>false</param-value> 
</context-param> 

을 이제 다른 점을 해결하기 위해 ...

최상의 현재 연습하는 것입니다 별개의 jetty.home 디렉토리 및 jetty.base 디렉토리. 아이디어는 jetty.home에 바이너리, 라이브러리 및 기본 설정 인 DEFAULT 구성이 포함되어 있다는 것입니다. 재정의 할 필요가있는 모든 것을 jetty.base로 설정 한 디렉토리에서 대체합니다.

제 제작 J2EE 서버는 Jetty를 실행하며 별도의 가정용 및 기본 디렉토리가 있습니다. 그것은 더 깨끗합니다. 그런 식으로 물건을 세우면 물건을 부러 뜨릴 가능성이 훨씬 적습니다. http://www.eclipse.org/jetty/documentation/current/startup-base-and-home.html가 말하기를 :

Jetty Home should always be treated as a standard of truth. All configuration modifications, changes and additions should be made in the appropriate Jetty Base directory.

내 노트북은 별도의 홈베이스 디렉토리가없는, 내가 개발하고 그 경고를하고 그것에 대해 걱정하지 않는다. jetty.base를 별도로 설치하지 않고도 Jetty를 실행할 수 있습니다. 문제가 발생하지 않습니다. 그것은 단지 BCP가 아닙니다. 나는 프로덕션 환경에서 별도의 홈 디렉토리와베이스 디렉토리를 추천 할 것이지만, dev 서버에서는 큰 문제가 아닌 것 같다.

관련 문제