【发布时间】:2015-04-22 05:26:56
【问题描述】:
我有以下角码:
<button ng-click="ctrl.submit(light)">Switch</button>
按钮点击由以下方式处理:
self.submit = function(light) {
console.log("==============================");
console.log("clicked button: ", light);
console.log("==============================");
$http.post('/ARHomeAutomation/rest/light/state/', light).then(function(response) {
console.log('headers: ' , response.headers);
console.log('status: ', response.status);
console.log('config: ', response.config);
console.log('data: ', response.data);
self.state = response.data;
}, function(errResponse) {
console.error('Error while updating light state');
})
console.log('User clicked submit with: ', light.id );
console.log('response: ', self.light);
}
在服务器端,我有以下应该响应请求的方法:
@POST
@Path("/state/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_HTML)
public String setStateOfLight(JSONObject aLight) {
if(aLight == null) {
return "It's a null";
} else {
System.out.println("content: " + aLight);
}
JSONObject jsonObject = new JSONObject();
//Update the state of the light with the given id
for(Light light: lightCollection) {
// .....
}
return getLightsStateAsJSON();
}
当我点击我的按钮时,我会收到以下消息:
根据 Firefox,我确实在我的请求中发送了 JSON。至少在我检查发送数据时是这样说的。
这是我的请求头数据:
我在这里错过了什么?
【问题讨论】:
-
您可能没有
MessageBodyReader类型JSONObject。如果是这种情况,我会想象这会记录在服务器中 -
peeskillet,服务器端没有日志记录。就好像它一开始就没有到达那里一样。
-
您使用的是什么 JAX-RS 实现(和版本)?
-
或者您可以只显示所有依赖项 Maven 还是只显示 jars。
-
你想知道这个:Manifest-Version: 1.0 Bnd-LastModified: 1407413291581 Build-Id: 08/07/2014 02:08 PM Build-Jdk: 1.7.0_60 Built-By: m_potociar Bundle -描述:用于 RESTful Web 服务 (JAX-RS) 的 Java API Bundle-DocURL:oracle.com Bundle-License:glassfish.java.net/public/CDDL+GPL_1_1.html,http://glassfish.java.net/public/CDDL+GPL_1_1.html Bundle-ManifestVersion: 2 Bundle-Name: javax.ws.rs-api Bundle-SymbolicName: javax.ws.rs-api Bundle-Vendor: Oracle Corporation Bundle-Version: 2.0.1 没有按我的意愿打印...
标签: java json angularjs jax-rs jersey-2.0