2012-11-16 82 views
1

我已經寫了RestEasy的彈簧服務Java客戶端請求不同的反應:RestEasy的服務返回的瀏覽器請求和

@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

但是當我嘗試CA從REST客戶端API灌裝,它返回一個網頁,這實際上是在那裏我有incoroporated休息服務的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休息客戶端沒有。奇怪的是,即使我將url修改爲隨機(在java客戶端中)除首字母部分(http:// localhost:8080/ControlAppWeb)之外的任何內容,輸出仍保持不變,並且從不會引發錯誤...

+0

檢查你的cookies瀏覽器,可能是您已經登錄所以瀏覽器請求通常是接受,而您的網址連接尚未 – hoaz

+0

認證@hoaz感謝您的建議...通過登錄頁面,我的意思是歡迎頁面(srry爲的mixup)......但問題仍然存在...也是我試圖從服務端,但無濟於事取出控制器和RequestMapping註釋......還另一件事注意到的是從Java REST客戶端調用的時候,不管是什麼網址我給了,除了INTIAL部分(HTTP://本地主機:8080/ControlAppWeb)...服務輸出總是相同的,即網頁...從來沒有一個錯誤扔了......好心建議。 .. –

回答

0

這種情況下的問題似乎是由於在控制應用程序的web.xml中配置了'過濾器'而引起的。由此所有/ *的請求都被重定向到歡迎頁面。去除web.xml文件中的過濾器配置解決了這個問題,併爲Java REST API的響應是「成功」一樣從瀏覽器調用。雖然我仍然不清楚爲什麼過濾器不會影響瀏覽器的請求,但對於Java客戶端的請求是這樣做的。 無論如何希望這可以幫助其他可能會遇到類似問題的人。

相關問題