抛出BadRequestException时java.lang.ClassNotFoundException:org.glassfish.jersey.internal.RuntimeDelegateImpl

尼兰伯·辛格

我的springbootapp中有一个处理程序类,该处理程序类对传入的REST请求执行一些验证,并将BadRequestException扔回到控制器类。

但是,它不是捕获控制器的BadRequestException,而是捕获异常并抛出

java.lang.ClassNotFoundException:org.glassfish.jersey.internal.RuntimeDelegateImpl

我花了一些时间寻找解决方案,但似乎找不到任何解决方案。

这是我在处理程序中的验证代码

    private void validateSignUpRequest(String phone) {
    if(StringUtils.isEmpty(phone))
        throw new BadRequestException("Phone Number can't be empty");
}

这是控制器

@PostMapping(path = "/users/sign-up")
public ResponseEntity<UserData> signUpUser(@RequestBody Users user) {
    UserData userData = null;
    HttpStatus httpStatus = null;
    boolean flag = false;
    try {
        userData = userHandler.fetchByPhone(user.getPhoneNumber());
        if (userData == null) {
            flag = userHandler.saveUser(user);
            httpStatus = HttpStatus.CREATED;
        } else {
            userData = UserData.failureResponse("User Already Exist");
            httpStatus = HttpStatus.CONFLICT;
        }
    }catch(BadRequestException e) {
        userData = UserData.failureResponse(e.getMessage());
        httpStatus = HttpStatus.BAD_REQUEST;
    }
    catch (Exception e) {
        userData = UserData.failureResponse(e.getMessage());
        httpStatus = HttpStatus.INTERNAL_SERVER_ERROR;
    }
    return new ResponseEntity<>(userData,httpStatus);
}

pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-rest -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
        <version>2.1.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <version>2.1.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>2.1.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <version>2.1.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <version>9.0.21</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>2.9.9</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.1.1</version>
    </dependency>
</dependencies>


<properties>
    <java.version>11</java.version>
</properties>
杰耶什

此类https://github.com/jersey/jersey/blob/master/core-common/src/main/java/org/glassfish/jersey/internal/RuntimeDelegateImpl.java在jersey-common下。

您缺少jersey-common https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-common

    <dependency>
       <groupId>org.glassfish.jersey.core</groupId>
       <artifactId>jersey-common</artifactId>
       <version>.....</version>
    </dependency>

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章