我正在尝试使用角度js,hibernate创建一个登录模块。我已经制作了一个API,但我无法从Controller中调用它。
路径URI(我的服务器运行在8085) URI =“http://localhost:8085/rmc/api/”;
LoginAPI
package com.rmc.api;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.rmc.bean.User;
import com.rmc.business.service.LoginService;
import com.rmc.resources.AppConfig;
import com.rmc.resources.Factory;
@Path("LoginAPI")
public class LoginAPI {
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response getUserDetails(String dataRecieved) {
Response returnValue = null;
Gson gson = new GsonBuilder().create();
User user = gson.fromJson(dataRecieved, User.class);
LoginService loginService = Factory.createLoginService();
try {
User user2 = loginService.getUserDetails(user.getUserName(),
user.getPassword());
String value = gson.toJson(user2);
returnValue = Response.ok(value).build();
} catch (Exception e) {
User user2 = new User();
user2.setMessage(AppConfig.PROPERTIES.getProperty(e.getMessage()));
String value = gson.toJson(user2);
if (e.getMessage().contains("DAO")) {
returnValue = Response.status(Status.SERVICE_UNAVAILABLE)
.entity(value).build();
} else {
returnValue = Response.status(Status.BAD_REQUEST).entity(value)
.build();
}
}
return returnValue;
}
}
控制器
app.controller("LoginController",['$scope','$http','$location', function($scope,$http,$location) {
$scope.adminLoginForm = {};
$scope.adminLoginForm.getAdminDetails = function() {
try {
var data = angular.toJson($scope.adminLoginForm);
var responsePromise = $http.post(URI + "LoginAPI",data);
} catch (err) {
$scope.message = "There is some system Issue, Please contact Administrator";
}
responsePromise.success(function(dataFromServer,
status, headers, config) {
console.log(dataFromServer);
if(dataFromServer!=null){
$location.pathname="\adminChoice.html";
}
else{
$scope.message=dataFromServer.message;
}
});
responsePromise.error(function(data, status, headers,
config) {
$scope.message = data;
});
}
}]);
控制台错误
angular.min.js:103 POST http://localhost:8085/rmc/api/LoginAPI 404 (Not Found)
(anonymous function)
@ angular.min.js:103n
@ angular.min.js:98g
@ angular.min.js:95(anonymous function)
@ angular.min.js:130$eval
@ angular.min.js:145$digest
@ angular.min.js:142$apply
@ angular.min.js:145(anonymous function)
@ angular.min.js:274dispatch
@ jquery.js:3r.handle
@ jquery.js:3
更新 web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>rmc</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.rmc.api</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>