2015-05-26 75 views
-2

我必须从Flex调用Java中的方法,它使用JSON并将信息保存在数据库中。当我从JSP调用它时,它接受输入,但是当我从Flex应用程序调用它时,它给了我错误 “服务器拒绝此请求,因为请求实体的格式不是所请求方法的请求资源支持的格式”服务器拒绝了这个请求,因为请求实体的格式不被所请求的资源所请求的资源所支持。Flex

以下是我的Flex示例代码。

var p:Object = new Object(); 
p.firstName = 'Mary'; 
p.lastName = 'Thomas'; 
p.gender = 'Female'; 

var httpServ:HttpService = new HttpService(); 
httpServ.url ="http://localhost/samplewebservice/myPerson/insert"; 
httpServ.useProxy = false; 
httpServ.method = "POST" 
httpServ.headers = {Accept: 'application/x-www-form-urlencoded'} 
httpServ.contentType = "application/x-www-form-urlencoded"; 
var jd:JSONEncoder = new JSONEncoder(p); 
var s:String = jd.getString(); 
httpServ.send(s); 

请让我知道它出错的地方。在此先感谢

我的服务代码

@POST 
@Path("/insert") 
@consumes(MediaType.APPLICATION_JSON) 
@RequestMapping(value = "/insert") 
public void save(@RequestBody Person person)throws Exception{ 
    try{ 
      myservice.insert(person); 
     } 
    catch(Exception e) 
    { 
     e.printStacktrace(); 
    } 

} 

回答

0
var httpServ:HttpService = new HttpService(); 
httpServ.url ="http://localhost/samplewebservice/myPerson/insert"; 
httpServ.method = "POST"; 

httpService.contentType="application/json"; 

var header:Object=new Object(); 
header["Accept"] = "application/json"; 
httpService.headers = header;  

var p:Object = new Object(); 
p.firstName = 'Mary'; 
p.lastName = 'Thomas'; 
p.gender = 'Female'; 

var params:Object=JSON.encode(p); 
httpService.send(params); 
+0

Jileni嗨。感谢您的快速回复。我修改了像urs这样的代码。如果它表示“客户端发送的请求在语法上不正确。” –

+0

这是一个请求映射错误,你可以发布服务方法吗? –

+0

尝试:public void save(@RequestParam(value =“p”)Person person)throws Exception {...} –

相关问题