无法从角度js中的控制器调用API

时间:2016-07-17 12:27:43

标签: javascript java angularjs hibernate rest

我正在尝试使用角度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>

0 个答案:

没有答案