我正在使用RESTEasy在Wildfly 8.2中構建REST服務。這基本上工作,但它不是UTF-8。如何強制RESTEasy(Wildfly 8.2)使用UTF8?
我的配置是這樣的:
我用的是自動JAXRS激活Wildfly由一代導致的RESTEasy來解決這個空類:
@ApplicationPath("/rest")
public class JaxRsActivator extends Application
{
}
我的REST實現是這樣的:
@Path("/user")
@Produces(MediaType.APPLICATION_JSON)
public class UserResource
{
@GET
@Path("/{firstname}-{lastname}")
public Response printMessage(@PathParam("firstname") String param1, @PathParam("lastname") String param2)
{
return Response.ok().entity(new TestObject(param1, param2)).build();
}
}
當我通過
調用此資源http://localhost:8080/mywebserver/rest/user/Déborah-François
我得到結果:
{"name1":"Déborah","name2":"François"}
交付的編碼爲Windows-1252。這是爲什麼?我想要在Wildfly上配置UTF-8。
[更新]
當我添加到的jboss-web.xml中這一點,甚至不工作:
<default-encoding>UTF-8</default-encoding>
(我不明白爲什麼UTF-8是不是默認在所有。在我看來這是必須的)
引用爲什麼UTF-8不是默認值。 AFAIK沒有規定爲URI使用UTF-8的標準。常用的方法是使用ISO-8859-1並對所有不適合此字符集的字符進行網址編碼。 – lefloh
我試圖在jboss-web.xml和standalone.xml中設置''作爲[描述在這裏](https://issues.jboss.org/browse/WFLY-2533? focusedCommentId = 12933050&page = com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12933050)但無效果。我用Wildfly 8.1.0.Final試了一下。也許你可以嘗試修復版本(8.0.0.CR1),看看它是否有效? –
lefloh
@lefloh當我創建一個測試客戶端並向我的服務器發送UTF-8請求時,編碼在響應輸出上工作。 – Bevor