package com.axxx.dps.apv.ws; import javax.jws.WebResult; import javax.jws.WebService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.axxx.dps.apv.model.Tdr; import com.axxx.dps.apv.model.TdrTdb; import com.axxx.dps.apv.service.TdrService; import com.axxx.dps.apv.util.AxxxConfUtil; /** * Implémente le service web de gestion des Précomptes de partenaires sociaux * au-dessus du service applicatif interne TdrService (basé sur Spring et Hibernate) * de l'application APV. * * @author mdutoo */ // Produces the following WSDL : //targetNamespace="http://www.axxx.com/dps/apv" // //<wsdl:portType name="PrecomptePartenaireService"> //... //<wsdl:binding name="PrecomptePartenaireServiceImplSoapBinding" type="tns:PrecomptePartenaireService"> //... // //<wsdl:service name="PrecomptePartenaireServiceImpl"> //<wsdl:port binding="tns:PrecomptePartenaireServiceImplSoapBinding" name="PrecomptePartenairePort"> // <soap:address location="http://localhost:8076/services/PrecomptePartenaireService"/> //</wsdl:port> //</wsdl:service> @WebService(name="PrecomptePartenaire", // used for port, and if no java itf for portType (service interface) ; else defaults to java itf if any, else to java impl targetNamespace="http://www.axxx.com/dps/apv", // else defaults to java package ex. http://ws.apv.dps.axxx.com/ serviceName="PrecomptePartenaireServiceImpl") // service (implementation) (reused for binding ), else default to java impl + "Service" // wsdl:portType/@name = itfClass.@WebService.name ; else defaults to itfClass.name if any, else implClass.name // wsdl:service/@name = implClass.@WebService.serviceName ; else defaults to implClass.name + "Service" // wsdl:service/wsdl:port/@name = implClass.@WebService.name + "Port" ; else defaults to implClass.name + "Port" // // and deduced : // wsdl:binding/@name = wsdl:service/@name + "SoapBinding" ; (thus defaults to implClass.name + "ServiceSoapBinding") // wsdl:definitions/@name = wsdl:service/@name ; (thus defaults to implClass.name + "Service") // wsdl:service/wsdl:port/soap:address/@location = from conf (Spring props) // // moreover, as usual : // wsdl:binding/@type = wsdl:portType/@name // wsdl:service/wsdl:port/@binding = wsdl:binding/@name // & targetNamespace for all of them // if impl & itf's targetNamespace differ, impl-generated wsdl has binding & service/port that use portType from imported itf-generated wsdl : // @Service("com.axxx.dps.apv.ws.precomptePartenaireWebServiceImpl") public class PrecomptePartenaireWebServiceImpl implements PrecomptePartenaireWebService { private Log log = LogFactory.getLog(this.getClass()); @Autowired private TdrService tdrService; /** * Crée le précompte partenaire fourni. * Utilise le TdrService de l'application APV. */ @Override public void creerPrecompte(PrecomptePartenaire precomptePartenaire) { log.warn("creerPrecompte appelé: " + precomptePartenaire.getNomStructure()); AxxxConfUtil.getInstance().sleep(); Tdr newTdr = new Tdr(); // TODO fields newTdr.setAdresse(precomptePartenaire.getAdresse()); newTdr.setCp(precomptePartenaire.getCp()); newTdr.setEmail(precomptePartenaire.getEmail()); newTdr.setIdentifiantClientPivotal(precomptePartenaire.getIdentifiantClientPivotal()); newTdr.setNomStructure(precomptePartenaire.getNomStructure()); newTdr.setSirenSiret(precomptePartenaire.getSirenSiret()); newTdr.setTelephone(precomptePartenaire.getTelephone()); newTdr.setTypeStructure(precomptePartenaire.getTypeStructure().toString()); newTdr.setVille(precomptePartenaire.getVille()); newTdr.setTdrTdb(new TdrTdb()); newTdr.getTdrTdb().setStatus("created"); tdrService.create(newTdr); } /** * Pas implémenté à ce jour. */ // without annotations again @Override public PrecomptePartenaire creerEtRetournePrecompte(PrecomptePartenaire precomptePartenaire, boolean mettreAJour) { log.warn("creerEtRetournePrecompte appelé: " + precomptePartenaire.getNomStructure() + ", " + mettreAJour); return precomptePartenaire; } /** * Pas implémenté à ce jour. */ // with same annotations again @Override public @WebResult(name = "PrecomptePartenaires") PrecomptePartenaire[] getPrecomptePartenaires() { log.warn("getPrecomptePartenaires appelé"); return new PrecomptePartenaire[0]; }; }