테스트 응용 프로그램에 Jetty를 성공적으로 임베드했습니다. 문제없이 파일을 제공 할 수 있습니다. 이제 Jetty가 자체 Jar 파일 내에있는 파일을 제공 할 수 있는지 알고 싶습니다.Jar 파일 내부에 파일을 찾는 Embedded Jetty
가능한지 아는 사람이 있습니까?
테스트 응용 프로그램에 Jetty를 성공적으로 임베드했습니다. 문제없이 파일을 제공 할 수 있습니다. 이제 Jetty가 자체 Jar 파일 내에있는 파일을 제공 할 수 있는지 알고 싶습니다.Jar 파일 내부에 파일을 찾는 Embedded Jetty
가능한지 아는 사람이 있습니까?
해킹이 더 많을 수도 있지만 JAR 파일이 실제로 ZIP이 아니십니까? (확실하지 않음) 임시 폴더에 압축을 풀어 거기에서 그들을 제공 할 수 있습니까?
답을 찾았지만 부두가 아니라 Winstone입니다. http://winstone.sf.net
예는 트릭은 클래스 패스 위치에 파일의 URL을 생성하는 것입니다 http://docs.codehaus.org/display/JETTY/Embedding+Jetty
에서 부두 내장 페이지에 나열됩니다.
String webDir = this.class.getClassLoader().getResource("com/company/project/mywebdir").toExternalForm();
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
context.setResourceBase(webDir);
어떤 클래스가이 코드를 실행해야합니까? – phtrivier
@phtrivier org.mortbay.jetty.Server 또는 org.eclipse.jetty.server.Server를 인스턴스화하는 클래스. –
'request.getRequestDispatcher (...) .forward (req, resp)'가 JAR 파일에서 실행할 때'WEB-INF'에서'.jsp' 파일을 찾지 못하면 어떻게해야할까요? –
스프링을 방정식에 넣으면 꽤 간단합니다. 그리고 여기에 간다 :
... WebAppContext webAppContext = new WebAppContext(); webAppContext.setServer(server); webAppContext.setContextPath("/"); webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString()); server.addHandler(webAppContext); ....
이렇게하면 jail 파일 내에서 필요한 웹 리소스를 찾을 수 있습니다.
나는 할 수 있겠지만 단순함을 위해 Jar 안에 자체 웹 응용 프로그램이 필요합니다. :) – LaSombra
사실 웹 패드 폴더를 설정하려고하면 부두가 내부적으로 처리합니다. 그래서 그다지 멀지 않았습니다. – fd8s0