War 파일을 배포하기 위해 Jetty를 임베디드 모드로 시작하려고합니다. 9.4.6 버전의 jetty lib를 사용하고 있습니다.
Jetty를 시작하고 웹 애플리케이션을 배포하기 위해 Gradle에서 다음 작업을 생성했습니다.
println 'Starting Jetty............'
project.ext.server = new Server();
ServerConnector connector = new ServerConnector(project.ext.server);
connector.setPort(jettyPort);
project.ext.server.addConnector(connector);
WebAppContext webapp = new WebAppContext()
webapp.setContextPath('/')
def warPath = 'build/libs/';
warPath += 'test-' + project.version + '.war';
println("Deploying WAR File : --> ${warPath}");
webapp.setWar(warPath)
project.ext.server.setHandler(webapp);
project.ext.server.start();
println 'Server started, waiting...'
new StopMonitor(jettyStopPort, project.ext.server).start();
println 'Jetty started.'
그러나 위의 스크립트는 다음 오류로 실패합니다.
원인 : java.lang.NoClassDefFoundError : org.eclipse.jetty.server.session.SessionHandler 클래스를 초기화 할 수 없습니다.
실패한 스크립트의 정확한 줄은
WebAppContext webapp = new WebAppContext()
이 줄을 스크립트에서 한 줄로 유지하고 모든 것을 제거하더라도 동일한 오류가 발생합니다.
흥미롭게도 불평하는 클래스는 jar 파일 jetty-server에 있습니다. jetty libs 8.1과 함께 작동하는 데 사용되는 동일한 스크립트
참고 : Jetty 9.4에서 스크립트가 작동하도록하려면 Jetty 9.4에서 제거 된 BlockingConnectot 대신 ServerConnector 클래스를 사용해야했습니다. 나머지 스크립트는 동일합니다.
왜 이것이 실패하는지 잘 모르겠습니다.
필수 jar 파일이 누락되었을 수 있습니다.
적절한 빌드 도구를 사용하는 것이 좋습니다 . 선택할 수있는 도구가 많습니다 .
다음은 예제 프로젝트에 대한 jar 종속성 목록 (트리 형식)입니다.
https://github.com/jetty-project/embedded-servlet-3.1
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ embedded-servlet-3.1 ---
[INFO] org.eclipse.jetty.demo:embedded-servlet-3.1:war:1-SNAPSHOT
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
[INFO] +- org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531:compile
[INFO] | +- org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531:compile
[INFO] | | \- org.eclipse.jetty:jetty-util:jar:9.4.6.v20170531:compile
[INFO] | \- org.eclipse.jetty:jetty-servlet:jar:9.4.6.v20170531:compile
[INFO] | \- org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531:compile
[INFO] | \- org.eclipse.jetty:jetty-server:jar:9.4.6.v20170531:compile
[INFO] | +- org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531:compile
[INFO] | \- org.eclipse.jetty:jetty-io:jar:9.4.6.v20170531:compile
[INFO] \- org.eclipse.jetty:jetty-annotations:jar:9.4.6.v20170531:compile
[INFO] +- org.eclipse.jetty:jetty-plus:jar:9.4.6.v20170531:compile
[INFO] | \- org.eclipse.jetty:jetty-jndi:jar:9.4.6.v20170531:compile
[INFO] +- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO] +- org.ow2.asm:asm:jar:5.1:compile
[INFO] \- org.ow2.asm:asm-commons:jar:5.1:compile
[INFO] \- org.ow2.asm:asm-tree:jar:5.1:compile
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다