이는 구성 정보를 사용하기 위해 임베디드 Tomcat 및 Jersey를 사용하여 REST 전체 웹 서비스를 작성하는 간단한 응용 프로그램입니다. 이 응용 프로그램은 또한 REST API 호출을 통해 렌더링되는 JSP 및 프리 마커 템플릿을 사용합니다. 주로 클래스를 등록하는 대신 객체 인스턴스를 ResourceConfig 에 등록하는 데 중점을 둡니다.
응용 프로그램은 두 개의 Tomcat 컨텍스트 경로를 만듭니다. REST FOR FULL API 엔드 포인트는 /api 이고 웹 페이지의 다른 하나는 TomCat WebApp 기반 디렉토리 위치 /src/main/webapp 에서 직접로드되는 /webapp 입니다.
File base = new File("src/main/webapp");
Context context = tomcat.addContext("/api", base.getAbsolutePath());
tomcat.addWebapp(null, "/webapp", base.getAbsolutePath());
이 응용 프로그램은 응용 프로그램 구성에 YML 파일을 사용합니다. 먼저 configuration.yml 파일을 읽고 구성을 응용 프로그램으로 전달하십시오.
#configuration.yml
#setting server configuration
server:
port: 9292
#configure user name
user: "eigenharsha"
ResourceConfig는 JAX-RS 애플리케이션 클래스의 확장이지만 리소스 및 제공 업체 등록을보다 친숙하게 만드는 몇 가지 등록 방법을 제공합니다. 이 applciation은 public ResourceConfig register(Object component) 사용하여 클래스 인스턴스를 통해 등록 된 리소스를 등록했습니다.
JSPMVCFEATURE 및 FREEMARKERMVCFEATURE JSP 및 프리 마커 템플릿, 웹 브라우저에 직접로드 된 HTML/Angular/JavaScript에 사용되었습니다.
final ResourceConfig config = new ResourceConfig()
.packages(Main.class.getPackage().getName())
.register(new Resource(new Core(), configuration)) // create instance of Resource and dynamically register
.register(JspMvcFeature.class) // register jspMVC
.register(FreemarkerMvcFeature.class) // register FreemarkerMVC
.property(ServletProperties.FILTER_FORWARD_ON_404, true);
return new ServletContainer(config);
구축 자원을위한 프로그램 API에 대한 심층적 인 자습서는 여기에서 확인할 수 있습니다.
이 프로젝트에는 Maven이 필요합니다.
$ git clone https://github.com/eigenharsha/jersey-mvc-jsp-freemarker-with-embedded-tomcat.git
$ cd jersey-mvc-jsp-freemarker-with-embedded-tomcat
$ mvn clean install
나는 Heroku에 배포하기 위해 Procfile 만들었습니다. Heroku에 배포를위한 심층적 인 자습서는 여기에서 확인할 수 있습니다.
$ web: sh target/bin/webapp
이 응용 프로그램을 배포하면이 REST 서비스에 액세스 할 수 있습니다.
| 의지 | 엔드 포인트 |
|---|---|
| 동적으로 생성 된 리소스 호출 | http : // localhost : 9292/api/resource |
| YML 파일에서 사용자 정보를 가져 오십시오 | http : // localhost : 9292/api/resource/user |
| 프리 마커 템플릿 | http : // localhost : 9292/api/resource/freemarker |
| JSP 템플릿 | http : // localhost : 9292/api/resource/jsp |
| HTML 페이지 | http : // localhost : 9292/webapp/index.html |
질문이나 제안? [email protected]으로 이메일을 보내 주시기 바랍니다