2017-07-28 46 views
-1

我試圖訪問我創建的基本休息API時遇到問題。當我輸入http://localhost:8080/projectName/rest/hello時,出現着名的404錯誤,如您在下面的代碼片段中看到的那樣,我期待一個「Hello world」字符串作爲響應。 我想我錯過了一些額外的配置有..與Spring的其他API調用

任何意見,將不勝感激

@Controller 
@JsonIgnoreProperties(ignoreUnknown=true) 
@RequestMapping("/rest") 

public class EntityController { 

    @RequestMapping(value="/hello" , method=RequestMethod.GET , produces=MediaType.TEXT_PLAIN_VALUE) 
    public @ResponseBody String hello() { 
     return "Hello world"; 
    } 
} 
+0

你嘗試沒有產生? – likeachamp

+0

請發佈您的Spring MVC配置和部署描述符,並描述您的應用程序的部署方式。 –

回答

1

你並不需要公開的「應用程序名稱」時,儘量只使一個GET請求:

http://localhost:8080/rest/hello

+1

我同意這聽起來像它可能是問題。默認情況下'@ RequestMapping'會指向url的根目錄。 – Mustafa

+0

仍然有相同的錯誤:/,是否有必要使用某種休息實現像apache cxf ...? – ZiOS

+0

@Mustafa'/ projectName'不會被Spring MVC設置,它會被servlet容器設置。這與控制器完全無關。這個答案充其量只是一種猜測,並且假設沒有明確說明,也不基於問題中的任何內容。 –

-1

你應該用你的類RestController,使您的服務回報一個JSON體。 消費服務,需要在主機後面添加應用程序的名稱,然後你的控制器和控制方法的名稱的路徑,就這樣

@RestController 
@JsonIgnoreProperties(ignoreUnknown=true) 
@RequestMapping("/rest") 
public class EntityController { 

    @RequestMapping(value="/hello" , method=RequestMethod.GET ,produces=MediaType.TEXT_PLAIN_VALUE) 
     public @ResponseBody String hello() { 
     return "Hello world"; 
    } 
} 

之後,你對REST操作路徑會是什麼樣子

http://localhost:8080/app-name/rest/hello

希望它可以幫助

+0

這是如何解釋404? –