Нелегальный аргумент. , , исключение в. , , с причиной = ноль - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь добавить функциональность в существующее веб-приложение JAVA Spring / Angular JS, которое использует вызовы REST наряду с JPA / Hibernate / Liquibase.Я следил за тем, что есть, и хотя я преодолел много ошибок, я не могу понять, что, как мы надеемся, является последней ошибкой.Приложение загружается, но данные для отображения не возвращаются.И я знаю, что данные находятся в базе данных, поскольку прямой запрос SQL возвращает их назад.Так должно быть с настройкой Spring / JPA / Hibernate.Я вижу в журналах, что контроллер Angular вызывает мой файл PropertiesRestController.java и использует правильный метод.Это, в свою очередь, вызывает правильный метод в моем файле PropertiesDataService.java, который использует правильный запрос / метод в моем файле Repository.java.Но когда я отлаживаю точку разбивки, код в сервисе AngularJS выглядит как строка «data = angular.fromJson (data);».Журналы показывают правильные параметры для каждого метода, но затем выдают ошибку при вызове метода PropertiesRestController.java с помощью ".... Logging.LoggingAspect - Illegal Argument ['Sold', '30,' jwt.model.UserContext @ xzyABC123 ', Pagerequest [число: 0, размер 20, sort: null]] in... web.rest.controller.PropertiesRestController.findMyProperties ().. logging.LoggingAspect - Исключение в.. web.rest.controller.PropertiesRestController.findMyProperties () с делом = ноль ".Кроме того, в интерфейсе браузера с инструментами разработчика я получаю «SyntaxError» в строке «findMyProperties.transformResponse» моего сервиса AngularJS для этого просмотра страницы.

Я провел обширные веб-исследования по этому вопросу. И ядобавили, например, «возвращение Optional.ofNullable (myProperty) .map (a -> new ResponseEntity <> (a, HttpStatus.OK)). orElse (new ResponseEntity <> (HttpStatus.NOT_FOUND) в вызов метода PropertiesRestController.java.Прежде чем я пытался вернуть Page myProperty = myPropertyDataService.getMyProperties (....... Другие имели проблемы с возвращаемым нулем и должны были его обработать. Я получаю данные точно (если SQL правильный), но в случае запросаЯ решил по крайней мере обработать нуль, который сообщается в файле журнала. Я убедился, что мой SQL в @Query ссылается на имена сущностей, а не на таблицы / язык SQL (хотя, честно говоря, некоторые из них уже используются, я несмотрите в определениях сущностей, так что я не знаю, откуда они взяли их для использования.)

AngularJS Controller

    $scope.myPropertiesP = [];

    $scope.loadall = function(){
    MyProperties.findMyProperties({propertyStatus:"Pending",listingDate:0,function(result){
    $scope.myPropertiesP = result.content;
});
    $scope.loadall();

AngularJS Service

    use strict;
    angular.module('propertyApp')
    .factory('MyProperties',function($resource){
      return $resource('rest/api/Properties/my/:propertyStatusName/:propertyListingDate', {}, {
      'findMyProperties': method: 'GET',
         transformResponse: function(data){
           data = angular.fromJson(data);
           return data;
         });
      });
    });

PropertyRestController.java

    @GetMapping(value='/properties/my/{propertyStatusName}/{propertyListingDate}", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Page<Properties>> findMyProperties(@PathVariable propertyStatusName, @PathVariable Integer propertyListingDate, @Authenticated User user, Pageable page){
    Page<Properties> myProperty = myPropertyDataService.getMyProperties(propertyStatusName, propertyListingDate,user.getUser(),pageable);
    return Optional.ofNullable(myProperty).map(a -> new ResponseEntity<>(a, HttpStatus.OK)).orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND));
    }

PropertyDataServices.java

    public Page<Properties> getMyProperties(String propertyStatusName, Integer propertyListingDate, User user, Pageable page){
      if(pageable != null){
        if(propertyListingDate==0)&&(propertyStatusName=='Pending'){
          return PropertyRespository.MyPropertiesP(user.getId(),pageable);
        } else {
          return PropertyRespository.MyPropertiesP(user.getId(), newPageRequest(0,20));
    }
    }

PropertyRepository.java

    public interface PropertyRespository extends JpaRepsotiory(Property,Long>{
        Page<Property> findByNameContaingIgnoreCase(String name, Pageable pageable);
     . . . 

       @Query("select prop from Property prop where prop.propertyOwner = :propertyOwnerId AND (propertyStatus=3 OR prop.propertyStatus=2) ORDER BY prop.propertListingDate DESC")
    Page<Property> myPropertiesP(@Param("propertyOwner") Integer propertyOwnerId, Pageable pageable):


    }



I am supposed to get back JSON strings of database objects to display through AngularJS.
...