0

Java または Javascript JSON Web サービスを作成して、単純なプロパティ ファイルからデータを取得するにはどうすればよいですか? 私の意図は、多くの単体テストを実行する Jenkins インスタンスのグローバル プロパティ ストレージとしてこれを使用することです。マスター プロパティ ファイルは、手動で編集してソース管理に保存できる必要もあります。

私のようなジュニアレベルのプログラマーにとって最も簡単な方法を人々が推奨する方法を考えているだけです。最低限の読み取り機能が必要ですが、それほど難しくなければ書き込み機能も必要です。したがって、REST である必要はありません。

このようなものが Java または Groovy に既に存在する場合は、そのリソースへのリンクをいただければ幸いです。私は SoapUI の専門家ですが、モック サービスでこのようなことができるかどうかはわかりません。

Ruby でこのようなものを見つけましたが、Ruby プログラマーではないため、動作させることができませんでした。

4

1 に答える 1

0

Java REST フレームワークは多数ありますが、私は Jersey に最も精通しているため、プロパティ ファイルに単純な読み取り機能を提供する Groovy スクリプトを次に示します。

@Grapes([
        @Grab(group='org.glassfish.jersey.containers', module='jersey-container-grizzly2-http', version='2.0'),
        @Grab(group='org.glassfish.jersey.core', module='jersey-server', version='2.0'),
        @Grab(group='org.glassfish.jersey.media', module='jersey-media-json-jackson', version='2.0')
])
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory
import org.glassfish.jersey.jackson.JacksonFeature
import javax.ws.rs.GET
import javax.ws.rs.Path
import javax.ws.rs.Produces

@Path("properties")
class PropertiesResource {
    @GET
    @Produces("application/json")
    Properties get() {
        new File("test.properties").withReader { Reader reader ->
            Properties p = new Properties()
            p.load(reader)
            return p
        }
    }
}

def rc = new org.glassfish.jersey.server.ResourceConfig(PropertiesResource, JacksonFeature);
GrizzlyHttpServerFactory.createHttpServer('http://localhost:8080/'.toURI(), rc).start()
System.console().readLine("Press any key to exit...")

残念ながら、Jersey は 3.1 バージョンのライブラリを使用するため、埋め込み可能な jar を使用してスクリプトを実行しない限りasm、Groovy の 4.0 バージョンと競合します (コマンドラインで呼び出してスクリプトを渡すだけでは機能しません)。また、Apache Ivy 依存関係も提供する必要がありました。(Groovy チームが次のリリースでこれらを解決してくれることを願っています。特に、過去に私を悲しませたものです。) したがって、次のように呼び出すことができます (クラスパス jar へのフルパスを指定します)。asmgroovy-allgroovyasm

java -cp ivy-2.2.0.jar:groovy-all-2.1.6.jar groovy.lang.GroovyShell restProperties.groovy

という名前のプロパティ ファイルを作成しtest.properties、上記のスクリプトを という名前のファイルにコピーしrestProperties.groovyて、上記のコマンド ラインから実行するだけです。次に、Unix で次のコマンドを実行して試してみます。

curl http://localhost:8080/properties

また、プロパティ ファイルの JSON マップが返されます。

于 2013-07-24T22:45:35.340 に答える