Je crois que le problème est que votre entrée SOAP utilise le préfixe d'espace de noms eve
pour l'élément d'entrée eventId
.
Essayez ceci:
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eve="http://ws.udc.es/event">
<x:Header/>
<x:Body>
<eve:findEvent>
<eventId>0</eventId>
</eve:findEvent>
</x:Body>
j'ai pu recréer en utilisant le fournisseur de services suivants à la jetée 9.4:
Interface de point de terminaison de service:
package org.example.sampleservice;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService(targetNamespace="http://ws.udc.es/event")
public interface SampleService {
@WebMethod(operationName = "findEvent")
public ServiceEventDto findEvent(@WebParam(name = "eventId") Long eventId) throws InstanceNotFoundException;
}
mise en œuvre du service:
package org.example.sampleservice;
import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.ws.WebServiceContext;
@WebService(endpointInterface = "org.example.sampleservice.SampleService", targetNamespace="http://ws.udc.es/event")
public class SampleServiceImpl implements SampleService {
@Resource
private WebServiceContext ctx;
@WebMethod(operationName = "findEvent")
public ServiceEventDto findEvent(@WebParam(name = "eventId") Long eventId) throws InstanceNotFoundException {
System.out.println("SampleServiceImpl: received eventId " + eventId);
return new ServiceEventDto();
}
}
Lorsque j'utilise votre entrée d'origine avec <eve:eventId>0</eve:eventId>
j'observe la sortie suivante:
SampleServiceImpl: received eventId null
Quand j'utilise <eventId>0</eventId>
je vois le résultat attendu: cependant,
SampleServiceImpl: received eventId 0
Si, vous êtes devrait accepter <eve:eventId>
vous pouvez également ajuster votre @WebParam
pour ajouter targetNamespace
comme suit:
@WebParam(name = "eventId", targetNamespace="http://ws.udc.es/event") Long eventId
Quand je change mon fournisseur de services de cette façon, la sortie est inversée et <eve:eventId>
n'est plus null
.
donc le code a findInvite et inviteId et le XML a findEvent et eventId – slipperyseal
@SlipperySeal Désolé, j'ai copié le mauvais code, je vais le réparer maintenant. –