小编Bal*_*211的帖子

如果 RequestBody 中存在任何未知字段,则需要拒绝 POST/PUT 请求

@Valid 检查适用于各个字段。如果 POST/PUT 请求的 JSON 请求主体中存在任何未知字段,是否有任何方法可以拒绝请求。下面是我的示例 DTO 类和控制器。对于下面的示例请求正文(例如),请求应被拒绝/抛出异常。任何帮助或建议将不胜感激。

{
"accountid" : "P12345",
"name" : "Cardiology",
"domain" : "Apollo"
}

public class Account {

    @NotEmpty(message = "accountid is required")
    private String accountid;

    @NotEmpty(message = "name is required")
    private String name;

   //getters & setters

}

**********************************************************************************************

public class BeanController {

    @PostMapping(path = "/accounts")
    public ResponseEntity<?> getAllAccounts(@RequestBody @Valid Account account) {

        System.out.println("::: Account is " + account + " :::");

        return ResponseEntity.ok().body("SUCCESS");

    }
}
Run Code Online (Sandbox Code Playgroud)

java validation rest jackson spring-boot

7
推荐指数
1
解决办法
2898
查看次数

ClassNotFoundException:com.sun.xml.internal.ws.spi.ProviderImpl

我已在 build.gradle 文件中添加了所有相关依赖项。尽管如此,当我尝试运行 Invoke SOAP 服务时,仍然出现以下错误。共享依赖项部分和错误详细信息。使用 Java 11。互联网上已经有很多答案,但似乎都不起作用。任何帮助/建议将不胜感激。

dependencies {
    implementation 'org.codehaus.groovy:groovy-all:3.0.2'
    implementation 'javax.jws:javax.jws-api:1.1'

    cxfCodegen "jakarta.annotation:jakarta.annotation-api:1.3.5"
    cxfCodegen "jakarta.xml.ws:jakarta.xml.ws-api:2.3.3"
    cxfCodegen "jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"

    //implementation 'org.apache.cxf:cxf-spring-boot-starter-jaxws:3.5.0'
    //implementation 'javax.xml.bind:jaxb-api:2.3.1'
    compile 'javax.xml.ws:jaxws-api:2.3.1'

    implementation 'com.sun.xml.messaging.saaj:saaj-impl:2.0.1'
    implementation 'javax.xml.soap:javax.xml.soap-api:1.4.0'
    implementation 'javax.xml.soap:saaj-api:1.3.5'

    implementation 'com.sun.xml.ws:jaxws-rt:3.0.2'
    implementation 'com.sun.xml.ws:rt:3.0.2'
    implementation 'com.sun.xml.ws:jaxws-ri:3.0.2'
}
Run Code Online (Sandbox Code Playgroud)

获取错误堆栈跟踪下方

Exception in thread "main" javax.xml.ws.WebServiceException: Provider com.sun.xml.internal.ws.spi.ProviderImpl not found
    at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:61)
    at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:58)
    at javax.xml.ws.spi.ServiceLoaderUtil.newInstance(ServiceLoaderUtil.java:103)
    at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:112)
    at javax.xml.ws.spi.Provider.provider(Provider.java:96)
    at javax.xml.ws.Service.<init>(Service.java:112)
    at com.example.BLZService.<init>(BLZService.java:40)
    at dummypackage.DummySOAPClient.main(DummySOAPClient.java:21)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.ws.spi.ProviderImpl
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.ws.spi.ProviderImpl

    at …
Run Code Online (Sandbox Code Playgroud)

java soap web-services gradle java-11

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

gradle ×1

jackson ×1

java-11 ×1

rest ×1

soap ×1

spring-boot ×1

validation ×1

web-services ×1