小编Has*_*Fun的帖子

如何根据WSDL开启验证-Spring Boot和Spring-WS

在我的架构中,我具有以下元素:

<xs:element name="deletePokemonsRequest">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="pokemonId" type="xs:int" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

我有终点:

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "deletePokemonsRequest")
@ResponsePayload
public DeletePokemonsRequest deletePokemons(@RequestPayload DeletePokemonsRequest deletePokemons){
    pokemonDAO.deletePokemons(deletePokemons.getPokemonId());
    return deletePokemons;
}
Run Code Online (Sandbox Code Playgroud)

当我发送此端点时:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pok="www">
   <soapenv:Header/>
   <soapenv:Body>
      <pok:deletePokemonsRequest>               
      </pok:deletePokemonsRequest>
   </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

它被接受,但在验证阶段应被拒绝。为什么呢 因为我设置了minOccurs=1,但是它接受了带有0元素的信封。
如何根据WSDL打开验证?

java soap web-services spring-ws spring-boot

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

标签 统计

java ×1

soap ×1

spring-boot ×1

spring-ws ×1

web-services ×1