首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs $http弹簧rest控制器- 404错误

Angularjs $http弹簧rest控制器- 404错误
EN

Stack Overflow用户
提问于 2017-10-22 07:04:09
回答 1查看 654关注 0票数 1

在从angularjs到spring控制器进行$http调用时,我得到了404个错误,下面是代码:

工厂:

代码语言:javascript
复制
factory.checkCodeAvail = function(url){
        return $http({
            url: url,
            responseType:"json",
            method: "GET",
            headers: {
                "Content-Type": "application/json"
            }
        });
}

控制器调用此工厂方法:

代码语言:javascript
复制
commonFactory.checkCodeAvail('findDepartment')
                    .then(function (success){
                        console.log(success);
                   },function (error){
                       console.log(error);           
});

这是我在浏览器控制台中遇到的错误:

代码语言:javascript
复制
GET http://localhost:8080/TexERP/findDepartment 404 ()

弹簧控制器:

代码语言:javascript
复制
@RestController
public class AdminController {

    private static final Logger logger = LoggerFactory.getLogger(AdminController.class);

    @RequestMapping(value="/findDepartment", method=RequestMethod.GET)
    public ResponseEntity findDepartment(HttpServletRequest req, HttpServletResponse res){
        ResponseEntity response = null;


        return response;
    }

}

servlet file.xml:

代码语言:javascript
复制
 <context:annotation-config />
 <!-- <cache:annotation-driven /> -->

 <context:component-scan base-package="com.erp" />
 <mvc:annotation-driven/>

web.xml

代码语言:javascript
复制
<?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" id="WebApp_ID" version="3.0">
  <display-name>TexERP</display-name>

  <servlet>
    <servlet-name>erp</servlet-name>
    <servlet-class>
          org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <listener>
       <listener-class>
          org.springframework.web.context.ContextLoaderListener
       </listener-class>
    </listener>

  <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/erp-servlet.xml</param-value>
    </context-param>



<servlet-mapping>
    <servlet-name>erp</servlet-name>
    <url-pattern>/TexERP/*</url-pattern>
  </servlet-mapping>
</web-app>

Ajax调用没有到达spring控制器。

Tomcat在控制台中显示了这一行:

代码语言:javascript
复制
INFO: Mapped "{[/findDepartment],methods=[GET]}" onto public org.springframework.http.ResponseEntity com.erp.controller.AdminController.findDepartment(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-22 07:46:07

将servlet映射更改为"/",以便dispatcher servlet可以读取所有请求。在这里,您将请求发送到调度器servlet无法处理的服务器。所以基本上将dispatcher servlet映射更改为-

代码语言:javascript
复制
 <servlet-mapping>
 <servlet-name>erp</servlet-name>
 <url-pattern>/</url-pattern>
 </servlet-mapping>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46871396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档