我有一個使用Jersey的非常簡單的終端。我的網址是靜態的,它不需要任何請求參數。它看起來像這樣:Jersey返回HTTP狀態405 - 不允許的方法
但是,每當我請求這個URL,我總是收到的405 HTTP狀態碼 - 不允許的方法。
奇怪的是,如果我更改了@Path
註釋並定義了一個路徑變量,例如@Path("/chart/{blah}")
它工作正常。
有沒有人有一個想法,爲什麼我必須定義一個路徑變量來獲得這個工作?我不需要一個路徑變量,添加一個來獲得200響應似乎很愚蠢。
我有一個使用Jersey的非常簡單的終端。我的網址是靜態的,它不需要任何請求參數。它看起來像這樣:Jersey返回HTTP狀態405 - 不允許的方法
但是,每當我請求這個URL,我總是收到的405 HTTP狀態碼 - 不允許的方法。
奇怪的是,如果我更改了@Path
註釋並定義了一個路徑變量,例如@Path("/chart/{blah}")
它工作正常。
有沒有人有一個想法,爲什麼我必須定義一個路徑變量來獲得這個工作?我不需要一個路徑變量,添加一個來獲得200響應似乎很愚蠢。
感謝您的建議。它最終成爲我愚蠢地爲我的球衣SpringServlet輸入了不正確的url模式。這是/
,而不是/*
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
</servlet>
<url-pattern>/*</url-pattern>
<servlet-mapping>
<servlet-name>Chart Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
我想是因爲你指定
@Produces(MediaType.APPLICATION_JSON).
1這是可能)也許你應該嘗試運行在終端
curl -i -X GET -H 'Accept:application/json' http://localhost:8080/mydata
2以下)或嘗試
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_HTML})
感謝您的建議,不幸的是,這些仍然導致返回405。 – seedhead 2012-07-19 09:13:26
@seedhead對不起,你能再試一次嗎?我意識到我複製並粘貼了錯誤的標題 – tanyehzheng 2012-07-19 09:33:57
變化註釋類而不是方法:
@Path("/mydata")
public class MyClass(){
@GET
@Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
public String getData() {
return "{'name': 'value'}";
}
}
我不知道爲什麼,但它也給了我的問題的其他方式
我很痛苦同樣的問題; http://localhost:8080/mypath/myendpoint無法正常工作。
嘗試在路徑中添加「/ rest」,如http://localhost:8080/rest/mypath/myendpoint
請問您如何請求URL?例如 - 發佈您嘗試使用的實際URL。 – 2012-07-18 22:05:33
我正在使用的URL是:http:// localhost:8080/mydata – seedhead 2012-07-19 07:37:06