J'essaie de créer un exemple de client Java pour un service web SOAP que nous avons construit avec ASP.net.Consommer un service Web ASP.net en utilisant JAX-WS, obtenant "Le type spécifié est abstrait"
Le schéma de message de service Web utilise de nombreuses classes abstraites avec des implémentations de celles-ci, par ex. DeviceIdentifier (résumé), avec SerialNumber et ProductNumber (ce sont des exemples hypothétiques pour illustrer la question)
je wsimport pour créer le proxy côté client pour utiliser le service Web à partir de mon code java:
wsimport -extension -s c:\theservice -d c:\theservice -p theservice http://server/theservice?wsdl
I puis assembler le message comme suit:
GetDeviceReq request = new GetProductReq();
DeviceIdentifier id = new SerialNumber();
((SerialNumber)id).setUnitIdentifier(id);
GetDeviceResp response = service.GetDevice(request);
Le code se compile parfaitement et s'exécute. Cependant, j'obtiens un SOAPFaultException avec le message suivant du service Web ASP.net:
The specified type is abstract: name='DeviceIdentifier', namespace='http://bogus', at <unitIdentifier xmlns='http://bogus'>.
Je comprends ce que le message d'erreur signifie, mais je suis à court d'idées pour expliquer pourquoi sa passe dans ce cas? Je soupçonne que cela peut avoir quelque chose à voir avec la façon dont l'outil wsimport a généré le code proxy?