メイソンは、Java Webアプリケーションで使用されるように設計されたRESTリソースのオープンソースの軽量データアクセスレイヤーです。着信API要求を処理し、パラメーターをこれらのリソースにルーティングします。
< dependency >
< groupId >com.metamug</ groupId >
< artifactId >mason</ artifactId >
< version >4.8</ version >
</ dependency >JSPタグを使用して、データベースクエリを編集し、処理をリクエストします。 Javaクラスをコンパイル/デプロイせずに、REST APIをホット展開する。 JSPタグでREST APIを構築します。
< jsp : directive .include file = " ../fragments/mason-init.jspf " />
<%-- customer.jsp --%>
< m : resource >
< m : request method = " GET " >
< sql : query var = " customers " dataSource = " ${datasource} " >
SELECT name, address, phone, type from retail_customer
</ sql : query >
< c : set target = " ${output} " property = " customers " value = " ${customers} " />
</ m : request >
</ m : resource >サンプルプロジェクト
メイソンは、あなたの平易な古いJSP(きちんとしたタグライブラリを使用)をRESTリソースに変えます。メイソンは、リソースJSPでスクリプトレットを使用することを奨励していません。
JSPでリクエストを取得、投稿、配置、削除することができます。メイソンはTomcat 9でテストされています。JSTL.JARがTomcatを使用して発行されています。
JSP構成の詳細については、こちらをご覧ください。 https://tomcat.apache.org/tomcat-9.0-doc/jasper-howto.html
上記の例で見られるように、リソースJSPファイル内にデータベースクエリを記述するか、 {webAppDir}/WEB-INF/classes/query.propertiesファイルに配置し、JSPファイル内で再利用するためにそれらを参照することができます。
Acceptヘッダーに基づいてJSON/XMLに変換しますMVNでプロジェクトをクローンしてパッケージ化します
mvn clean package
その後、MTG-Mason-1.0.Jarがターゲットフォルダー内で見つけることができます。この瓶は、Java WebAppの依存関係として使用できます。
メイソンジャーファイルを{webAppDir}/WEB-INF/libに配置します
JSTL JARファイルをダウンロードして、 {webAppDir}/WEB-INF/lib内に配置します
フォルダー{webAppDir}/WEB-INF/resources/{resourceVersion}を作成し、JSPファイルをここに配置します。たとえば、 mywebapp/WEB-INF/resources/v1.0/foo.jsp 。
JSPファイル内にmtg-mason.tldをインポートします。このタグリブはメイソンジャー内に存在し、 MTGプレフィックスの使用を可能にします。また、JSTLタグリブをインポートする必要があります。 JSPファイルには次のものが含まれている必要があります
<% @taglib uri = " http://java.sun.com/jsp/jstl/core " prefix = " c " %>
<% @taglib uri = " http://java.sun.com/jsp/jstl/sql " prefix = " sql " %>
<% @taglib uri = " mtg-mason.tld " prefix = " m " %>
<%@ page trimDirectiveWhitespaces="true" %>{webAppDir}/WEB-INF/web.xml内に次のフィルターとリスナーを追加します< filter >
< filter-name >Router</ filter-name >
< filter-class >com.metamug.mason.Router</ filter-class >
</ filter >
< filter-mapping >
< filter-name >Router</ filter-name >
< url-pattern >/*</ url-pattern >
< init-param >
< param-name >datasource</ param-name >
< param-value >jdbc/mason</ param-value >
</ init-param >
</ filter-mapping >JSPリソースに対して行われたすべての要求は、このフィルターを介してルーティングされます。
6. {webAppDir}/META-INF/context.xmlファイルにデータソースを構成します。
サンプルWebAppをご覧ください。
Javaee-Web-APIを除き、それはアプリケーションサーバーとHSQL、MySQL、またはPostgreSQL依存関係のいずれかに存在するためです。 Oracleデータベースもサポートしていますが、ライセンスによりOracle JDBCドライバーを発送することはできません。そのため、Oracleデータベースを使用している場合は、プロジェクトの依存関係としてドライバーを手動でインストールする必要があります。
以下のリンクで同じことを行う方法に関する指示(それらのいずれかを参照できます)。 https://www.mkyong.com/maven/how-to-add-oracle-jdbc-driver-in-your-maven-local-repository/またはhttps://stackoverflow.com//1074971/4800126
Masonはapplication/xml 、 applicaton/json 、 application/json+datasetをサポートしています。詳細については、こちらの使用方法をご覧ください。 https://metamug.com/docs/api-request
メイソンは、スクリプトを書くためにGroovyをサポートしています。スクリプトを{webAppDir}/WEB-INF/scriptsに保持する必要があります
サンプルスクリプト
// test.groovy
def params = _request . getParams()
res[ ' message ' ] = ' Hello ' + params[ ' name ' ]スクリプトは、JSPリソースのscriptタグを使用して呼び出すことができます。
< m : script file = " test.groovy " var = " res " />このレポをフォークし、リストされている問題に対してPRを提出します。このプロジェクトの寄付は、このプロジェクトで個人的な能力で作業している個々の開発者に支払われます。彼らの貢献に対して彼らに報酬を与え、メイソンをコミュニティプロジェクトに維持するために。