簡體   English   中英

RestEasy服務針對瀏覽器請求和Java客戶端請求返回不同的響應

[英]RestEasy Service Returning Different response for Browser Request and Java Client Request

我寫了一個resteasyspring服務:

    @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應用程序的歡迎頁面,其中我對剩余服務的使用不正確:

         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客戶端卻無效。 奇怪的是,即使我將url修改為隨機變量(在Java客戶端中),但不包括初始部分(http:// localhost:8080 / ControlAppWeb),輸出仍保持不變,並且永遠不會拋出錯誤...

這種情況下的問題似乎是由於在控制應用程序的web.xml中配置的“ 過濾器 ”引起的。 因此,所有對/ *的請求都被重定向到歡迎頁面。 從web.xml文件中刪除過濾器配置解決了該問題,並且Java Rest API的響應“成功”與來自瀏覽器的響應相同。 盡管我仍然不清楚為什么過濾器不會影響瀏覽器的請求,但會影響Java Client的請求。 無論如何,希望這對可能正在努力解決類似問題的其他人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM