Angular HTTP和Spring Boot Rest服务

廷杜·爱德华

我正在从我的有角度的UI调用spring boot REST服务。只要将Spring Boot Rest服务作为Spring Boot应用程序执行,它就可以很好地工作。但是,一旦将其转换为WAR文件并部署到Jboss 6.2.4服务器上,我就会得到404。我看到从UI进行的REST服务调用成功了,但是请求JSON没有被传递。在请求JSON上,我传递了2个字符串和一个上载的excel文件。

这是我的角度UI http调用

App.service('getHeatMapDataService', ['$http', '$q', function ($http,      $q) {
this.getHeatMapData = function (scope) {
    var url = 'http://localhost:8080/rest-services/fusiontables/upload';
    var deferred = $q.defer();
    $http({
            method: 'POST',
            url: url,
            headers: {
                'Content-Type': undefined
            },
            data: {
                stateCd: scope.stateCd,
                addressExtras: scope.addressExtras,
                uploadFile: scope.upFile
            },
            transformRequest: function (data, headersGetter) {
                var formData = new FormData();
                angular.forEach(data, function (value, key) {
                    formData.append(key, value);
                });

                var headers = headersGetter();
                delete headers['Content-Type'];
                return formData;
            }
        })
        .success(function (data) {
            deferred.resolve(data);
            console.log("Success");
            console.log(data);
        })
        .error(function (data, status) {
            deferred.reject(status);
            console.log("Failed");
        });
    return deferred.promise;
}
}]);

这是我的Spring Boot Rest控制器在工作时

@RequestMapping(value="/upload", method=RequestMethod.POST)
@ResponseBody
public String getBoundaries(HeatMapUploadCommand uploadCommand) {
    logger.info("Heat Map Controller invoked " + uploadCommand);
    return null;
}

这是我的上传命令

public class HeatMapUploadCommand {

private String stateCd;
private String addressExtras;
private MultipartFile uploadFile;

当我在Jboss上部署之后,请求仍然会触发Spring Boot应用程序,但是所有请求参数都为null。

这是请求有效负载

------WebKitFormBoundaryvCCnl3nhIgoW1MwR
Content-Disposition: form-data; name="stateCd"

CA
------WebKitFormBoundaryvCCnl3nhIgoW1MwR
Content-Disposition: form-data; name="addressExtras"

1234
------WebKitFormBoundaryvCCnl3nhIgoW1MwR
Content-Disposition: form-data; name="uploadFile"; filename="CAdata.xlsx"
Content-Type: application/vnd.openxmlformats-    officedocument.spreadsheetml.sheet


------WebKitFormBoundaryvCCnl3nhIgoW1MwR--

我尝试将控制器更改为

@RequestMapping(value="/upload", method=RequestMethod.POST)
@ResponseBody
public String getBoundaries(@RequestParam(value="stateCd") String stateCd,
        @RequestParam(value="addressExtras") String addressExtras,
        @RequestParam(value="uploadFile") MultipartFile file) {
    System.out.println("Heat Map Controller invoked " + stateCd);
    return null;
}

仍然没有运气。这是我得到的回应。

{"timestamp":1464840821648,"status":400,"error":"Bad    Request","exception":"org.springframework.web.bind.MissingServletRequestParameterException","message":"Required String parameter 'stateCd' is not     present","path":"/rest-services/fusiontables/upload"}
廷杜·爱德华

终于想通了。

我必须添加一个Multipartresolver bean。

@Configuration
public class WebConfig extends WebMvcAutoConfiguration {
@Bean
public MultipartResolver multipartResolver() {
    return new CommonsMultipartResolver();
}

}

这解决了问题。好像当我将其作为spring boot应用程序运行时,sp​​ring已经照顾好了它,但是当部署为WAR文件时,应配置此bean

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular HTTP和Spring Boot Rest服务

来自分类Dev

Spring Boot Rest 服务 Angular

来自分类常见问题

从Spring Boot Rest服务下载文件

来自分类Dev

Spring Boot无法启动REST服务

来自分类Dev

Spring Boot Rest服务表单太大

来自分类Dev

无法运行 Spring Boot 简单 REST 服务

来自分类Dev

Spring Rest服务中的Angular File Saver

来自分类Dev

Spring Rest服务中的Angular File Saver

来自分类Dev

spring boot rest和带有websocket的angular2(在sockjs上sto脚)

来自分类Dev

如何使用spring-boot创建REST服务?

来自分类Dev

具有多个用户的Spring Boot REST服务

来自分类Dev

Spring Boot Rest服务| 请求方法'GET'不支持

来自分类Dev

如何进行Spring Boot REST endpints的服务发现

来自分类Dev

如何正确处理来自服务的异常(spring boot rest)

来自分类Dev

Spring-Boot为REST服务添加了基本的http安全性

来自分类Dev

Angular 如何知道要调用哪个 Spring Boot REST API?

来自分类Dev

CORS 策略(Spring Boot 和 Angular 7)阻止了从源“http://...”访问“https://...”处的 XMLHttpRequest

来自分类Dev

使用Angular 2 Http从REST Web服务中获取数据

来自分类Dev

使用Angular 2 Http从REST Web服务中获取数据

来自分类Dev

Spring Boot Rest Rest API上的异步-注释应该仅在服务或控制器上

来自分类Dev

Spring Security REST和Angular

来自分类Dev

Spring Boot-REST和SOAP组合

来自分类Dev

我可以使用REST Web服务和Spring Boot将Servlet中的应用程序转换为Spring吗?

来自分类Dev

如何在使用 spring boot 的 REST Web 服务中的 GET 请求期间修复“HTTP-404”错误

来自分类Dev

结合 Angular 2 应用服务器和 REST 服务器模块

来自分类Dev

Angular Basic Auth Spring Boot

来自分类Dev

具有Spring Integration和Spring Boot的微服务

来自分类Dev

Angular JS服务$ http和$ q

来自分类Dev

Nativescript和angular 2 Http服务

Related 相关文章

  1. 1

    Angular HTTP和Spring Boot Rest服务

  2. 2

    Spring Boot Rest 服务 Angular

  3. 3

    从Spring Boot Rest服务下载文件

  4. 4

    Spring Boot无法启动REST服务

  5. 5

    Spring Boot Rest服务表单太大

  6. 6

    无法运行 Spring Boot 简单 REST 服务

  7. 7

    Spring Rest服务中的Angular File Saver

  8. 8

    Spring Rest服务中的Angular File Saver

  9. 9

    spring boot rest和带有websocket的angular2(在sockjs上sto脚)

  10. 10

    如何使用spring-boot创建REST服务?

  11. 11

    具有多个用户的Spring Boot REST服务

  12. 12

    Spring Boot Rest服务| 请求方法'GET'不支持

  13. 13

    如何进行Spring Boot REST endpints的服务发现

  14. 14

    如何正确处理来自服务的异常(spring boot rest)

  15. 15

    Spring-Boot为REST服务添加了基本的http安全性

  16. 16

    Angular 如何知道要调用哪个 Spring Boot REST API?

  17. 17

    CORS 策略(Spring Boot 和 Angular 7)阻止了从源“http://...”访问“https://...”处的 XMLHttpRequest

  18. 18

    使用Angular 2 Http从REST Web服务中获取数据

  19. 19

    使用Angular 2 Http从REST Web服务中获取数据

  20. 20

    Spring Boot Rest Rest API上的异步-注释应该仅在服务或控制器上

  21. 21

    Spring Security REST和Angular

  22. 22

    Spring Boot-REST和SOAP组合

  23. 23

    我可以使用REST Web服务和Spring Boot将Servlet中的应用程序转换为Spring吗?

  24. 24

    如何在使用 spring boot 的 REST Web 服务中的 GET 请求期间修复“HTTP-404”错误

  25. 25

    结合 Angular 2 应用服务器和 REST 服务器模块

  26. 26

    Angular Basic Auth Spring Boot

  27. 27

    具有Spring Integration和Spring Boot的微服务

  28. 28

    Angular JS服务$ http和$ q

  29. 29

    Nativescript和angular 2 Http服务

热门标签

归档