私は resteasy-spring サービスを書きました:
@Controller
@RequestMapping("/abr/asd")
@Path("/ab/ac")
public class JobSchedulerService {
private static final Logger LOGGER = Logger.getLogger(JobSchedulerService.class);
@GET
@Path("/abc/{param}")
public String scheduleJobs(@PathParam("param") String name) {
return "Success";
}
}
ブラウザからこのサービスを呼び出そうとすると、応答は適切です:
http://localhost:8080/ControlAppWeb/rest/ab/ac/abc/name
Success
しかし、Rest Client API から呼び出してみると、実際には、残りのサービスを組み込んだ Web アプリケーションのウェルカム ページである Web ページが返されます。
try {
URL url = new URL("http://localhost:8080/WebApp/rest/ab/ac/abc/name");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
throw new RuntimeException("Failed! " + conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String output;
System.out.println("Output from Server is: ");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Java APIからの呼び出しでどこが間違っているのか、親切に助けてください
さらに、コントローラーとリクエストマッピングアノテーションをサービスから削除しようとしましたが、それでもブラウザー呼び出しは機能し、Java REST クライアントは機能しませんでした。奇妙なことに、最初の部分 (http://localhost:8080/ControlAppWeb) を除いて (Java クライアントで) URL をランダムに変更しても、出力は同じままで、エラーがスローされることはありません...