統合テストには組み込みのグラスフィッシュ バージョン 3.2-b06 を使用します。
問題は、Web サービス (RESTful) を呼び出すテストが 404 応答を返し、場合によっては 200 を返すことです。
例えば:
@Test
public void test() throws Exception {
int code = sendPOST(URL);
Assert.assertEquals(200, code);
}
しかし、テストの最初に Thread.sleep (1000) を追加すると、常にすべて問題ありません。
@Test
public void test() throws Exception {
Thread.sleep(1000);
int code = sendPOST(URL);
Assert.assertEquals(200, code);
}
次のようにアプリケーションをデプロイしています。
@BeforeClass
public void init() {
GlassFishProperties glassFishProperties = new GlassFishProperties();
glassfish = GlassFishRuntime.bootstrap().newGlassFish(glassFishProperties);
glassfish.start();
File ear = new File("target/ear.ear");
Deployer deployer = glassfish.getDeployer();
deployer.deploy(ear);
context = new InitialContext();
}
ログから、耳が展開されていることは明らかです。
何が間違っている可能性がありますか?
編集#1
コードを変更すると、テストがパスすることが判明しました。しかし、繰り返しテストを実行すると、失敗します。