2017-12-13 2 views
0

Maven으로 빌드 된 WAR 파일이 있으며 필요한 모든 종속성 (REST 서비스)이 포함되어 있습니다. Java JRE 1.8.0_152 및 Tomcat 8.5.24를 두 시스템에서 사용하고 있습니다. 하나는 Windows 10 64 비트 시스템이고 다른 하나는 Windows Server 2012 R2 64 비트 시스템입니다. 필자는 (Eclipse/Maven에서) Windows 10 시스템에 war 파일을 성공적으로 배포했지만 Windows 서버 시스템에 동일한 war 파일을 배포 할 때 Tomcat 시작 또는 war 파일 배포시 다음 오류가 발생합니다.Tomcat에 WAR 파일 배포 실패 : URI 체계 오류

13-Dec-2017 14:41:36.603 SEVERE [bla.bla-startStop-1] org.apache.catalina.core.ApplicationContext.log StandardWrapper.Throwable org.glassfish.jersey.server.internal.scanning.ResourceFinderException: The URI scheme war of the URI war:file:/C:/apache-tomcat-8.5.24/webapps/bla.war*/WEB-INF/classes/bla/bla/ is not supported. Package scanning deployment is not supported for such URIs. 
Try using a different deployment mechanism such as explicitly declaring root resource and provider classes using an extension of javax.ws.rs.core.Application 

그리고, 내가 생각하는 또 다른 메시지가 관련이 : 나는 REST 물건에 대한 저지를 사용하고

13-Dec-2017 14:41:36.615 SEVERE [bla.bla-startStop-1] org.apache.catalina.core.StandardContext.loadOnStartup Servlet [Jersey REST Service] in web application [/bla] threw load() exception 

하지만 두 시스템이 설치 JRE와 톰캣의 동일한 버전을 가지고 있고, 그것은 같은 전쟁 파일입니다! (나는 심지어 Tomcat 설치를 지우고 처음부터 설치했다.

모든 의존성이 전쟁 파일 (저어 항아리 포함)에 포함되어 있고 Windows 10 컴퓨터에서 작동하므로 어디서부터 시작해야할지 모르겠습니다. 주목할만한 유일한 사실은 war 파일 이름 ("bla.war *") 다음의 오류 메시지에 별표가 있다는 것입니다. 그 원인이 어디인지, 또는 실제로 오류의 근본 원인과 관련이 있는지 확실하지 않습니다.

힌트/의견이 있으십니까? 미리 감사드립니다!

+1

Dunno하지만 다른 Tomcat 구성처럼 보입니다. 서버의 Tomcat 구성이 전쟁의 압축을 풀려고합니까? 예 : unpackWARs == true가 설정되어 있는지 확인해야합니다. –

+0

@ Carl Nicholas : 감사합니다. 두 가지 모두 "다운로드, 압축 해제, 실행"형식의 Tomcat 설치이므로 차이가 있다고 생각하지 않습니다. –

+0

@KarlNicholas : 좋은 주인 - 그것은 unpackWAR 설정이었습니다! 테스트 목적으로 두 개의 항목을 만들었다는 사실을 잊어 버렸습니다 ... 어떻게 귀하의 의견을 답변으로 만들 수 있습니까? 당신은 신용을받을 가치가 있어요 :) –

답변

0

Tomcat/JVM이 .war 파일에서 직접 파일을 읽으려고한다는 로그 파일이 표시됩니다. URI war:file:/C:/apache-tomcat-8.5.24/webapps/bla.war*/WEB-INF/classes/bla/bla/은 지원되지 않습니다. 패키지 검색 배포는 해당 URI에서 지원되지 않습니다. Try using a different deployment mechanism은 명시 적으로 루트 리소스를 선언하고 제공합니다.

그래서 다른 tomcat 구성처럼 보입니다. 서버의 Tomcat 구성이 전쟁의 압축을 풀려고합니까? 예 : unpackWARs==true이 설정되어 있는지 확인해야합니다. 참조 : how to make tomcat explode the war files

+1

칼, 정확히 그랬습니다. "서버"가 인터넷에 있기 때문에 몇 가지 설정으로 놀았습니다. 두 개의 호스트 섹션 중 하나에는 unpackWARs = false가 있습니다. 작은 디테일, 큰 영향. :-) –