これは、YMLファイルを使用する構成情報のために、組み込みのTomcatとJerseyを使用して、RESTフルWebサービスを作成することを目的とした簡単なアプリケーションです。このアプリケーションは、REST API呼び出しでレンダリングされるJSPおよびFreemarkerテンプレートも使用します。主に、クラスを登録する代わりに、ObjectインスタンスをResourceConfigに登録することに焦点を当てています。
アプリケーションは、2つのTomcatコンテキストパスを作成します。 1つは完全なAPIエンドポイントです。1つは/apiであり、もう1つはWebページのもう1つは/webappです。これは、Tomcat WebAppベースディレクトリの場所/src/main/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およびFreeMarkerテンプレートに使用されるHTML/Angular/JavaScriptは、Webブラウザーに直接ロードされました。
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
このアプリケーションを展開すると、このレストサービスにアクセスできるようになります
| リソース | 終点 |
|---|---|
| 動的に作成されたリソースが呼び出されました | http:// localhost:9292/api/resource |
| YMLファイルからユーザー情報を取得します | http:// localhost:9292/api/resource/user |
| Freemarkerテンプレート | http:// localhost:9292/api/resource/freemarker |
| JSPテンプレート | http:// localhost:9292/api/resource/jsp |
| HTMLページ | http:// localhost:9292/webapp/index.html |
質問や提案? [email protected]に私にメールしてください