Post Ionic 中的方法 returns 404
Post method in Ionic returns 404
我在基于 REST 架构的服务中实施 post 方法时遇到问题。
所有获取方法都正常工作,但是当我 运行 post 我得到状态 404。
我想发送整数列表。
我正在使用工厂提供方法并在控制器中使用它们
服务文件
angular.module('groups.services', ['ngResource', 'ngRoute', 'constants'])
.factory('Group', function ($resource, MAIN) {
return {
getGroupStudents: function () {
return $resource(MAIN.url + '/student?groupId=:groupId');
},
saveTimesheet: function () {
return $resource(MAIN.url + '/timesheet', null, {
save: {
method: 'POST',
isArray: true
}
}, {headers: {"Content-Type": 'application/json'}});
}
}
});
控制器
angular.module('groups.controller', ['groups.services'])
.controller('GroupCtrl', function ($scope, $http, $state, $stateParams, Group) {
var presence = [];
$scope.$on('$ionicView.beforeEnter', function () {
presence = [];
});
$scope.students = Group.getGroupStudents().query({groupId: $stateParams.groupId});
$scope.checkTimesheet = function () {
$state.transitionTo('app.timesheet', {'groupId': $stateParams.groupId});
};
$scope.addToPresenceList = function (student) {
if (student.checked) {
presence.push(student.id);
} else {
var index = presence.indexOf(student.id);
presence.splice(index, 1);
}
};
$scope.saveTimesheet = function () {
Group.saveTimesheet().save({ "studentIds": presence});
};
});
api 在服务器端(java + 球衣)
@Path(TimesheetWebApi.BASE_PATH)
public interface TimesheetWebApi {
public static final String BASE_PATH = "/timesheet";
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response saveTimesheet(@NotNull List<Integer> studentIds);
}
请求负载
{studentIds: [1, 2]}
请求
Request URL:http://localhost:8100/app/timesheet
Request Method:POST
Status Code:404 Not Found
Remote Address:127.0.0.1:8100
有什么提示吗?我做错了什么?
问题是服务器端缺少 bean 注册。
@Component
@ApplicationPath(JerseyConfig.APPLICATION_PATH)
public class JerseyConfig extends ResourceConfig {
static final String APPLICATION_PATH = "/app";
public JerseyConfig() {
register(TimesheetWebApiImpl.class);
}
}
我在基于 REST 架构的服务中实施 post 方法时遇到问题。 所有获取方法都正常工作,但是当我 运行 post 我得到状态 404。
我想发送整数列表。 我正在使用工厂提供方法并在控制器中使用它们
服务文件
angular.module('groups.services', ['ngResource', 'ngRoute', 'constants'])
.factory('Group', function ($resource, MAIN) {
return {
getGroupStudents: function () {
return $resource(MAIN.url + '/student?groupId=:groupId');
},
saveTimesheet: function () {
return $resource(MAIN.url + '/timesheet', null, {
save: {
method: 'POST',
isArray: true
}
}, {headers: {"Content-Type": 'application/json'}});
}
}
});
控制器
angular.module('groups.controller', ['groups.services'])
.controller('GroupCtrl', function ($scope, $http, $state, $stateParams, Group) {
var presence = [];
$scope.$on('$ionicView.beforeEnter', function () {
presence = [];
});
$scope.students = Group.getGroupStudents().query({groupId: $stateParams.groupId});
$scope.checkTimesheet = function () {
$state.transitionTo('app.timesheet', {'groupId': $stateParams.groupId});
};
$scope.addToPresenceList = function (student) {
if (student.checked) {
presence.push(student.id);
} else {
var index = presence.indexOf(student.id);
presence.splice(index, 1);
}
};
$scope.saveTimesheet = function () {
Group.saveTimesheet().save({ "studentIds": presence});
};
});
api 在服务器端(java + 球衣)
@Path(TimesheetWebApi.BASE_PATH)
public interface TimesheetWebApi {
public static final String BASE_PATH = "/timesheet";
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response saveTimesheet(@NotNull List<Integer> studentIds);
}
请求负载
{studentIds: [1, 2]}
请求
Request URL:http://localhost:8100/app/timesheet
Request Method:POST
Status Code:404 Not Found
Remote Address:127.0.0.1:8100
有什么提示吗?我做错了什么?
问题是服务器端缺少 bean 注册。
@Component
@ApplicationPath(JerseyConfig.APPLICATION_PATH)
public class JerseyConfig extends ResourceConfig {
static final String APPLICATION_PATH = "/app";
public JerseyConfig() {
register(TimesheetWebApiImpl.class);
}
}