DefinitionWrapper.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.utils.wsdl;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.io.Writer;
- import java.net.URI;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import javax.wsdl.Binding;
- import javax.wsdl.BindingFault;
- import javax.wsdl.BindingInput;
- import javax.wsdl.BindingOperation;
- import javax.wsdl.BindingOutput;
- import javax.wsdl.Definition;
- import javax.wsdl.Fault;
- import javax.wsdl.Import;
- import javax.wsdl.Input;
- import javax.wsdl.Message;
- import javax.wsdl.Operation;
- import javax.wsdl.Output;
- import javax.wsdl.Part;
- import javax.wsdl.Port;
- import javax.wsdl.PortType;
- import javax.wsdl.Service;
- import javax.wsdl.Types;
- import javax.wsdl.WSDLException;
- import javax.wsdl.extensions.ExtensibilityElement;
- import javax.wsdl.extensions.ExtensionRegistry;
- import javax.wsdl.extensions.soap.SOAPAddress;
- import javax.wsdl.extensions.soap12.SOAP12Address;
- import javax.xml.namespace.QName;
- import org.openspcoop2.utils.xml.AbstractXMLUtils;
- import org.openspcoop2.utils.xml.DynamicNamespaceContext;
- import org.openspcoop2.utils.xml.XPathExpressionEngine;
- import org.openspcoop2.utils.xml.XPathReturnType;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- /**
- * Classe utilizzata per leggere/modificare i wsdl
- *
- *
- * @author Poli Andrea (apoli@link.it)
- * @author Lezza Aldo (lezza@openspcoop.org)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DefinitionWrapper implements javax.wsdl.Definition{
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /** WSDL Definitorio */
- private javax.wsdl.Definition wsdlDefinition = null;
- private Document wsdlDefinitionNode = null;
-
- /** Eventuale Path del wsdl caricato */
- private String path;
-
-
- private AbstractXMLUtils xmlUtils = null;
- private WSDLUtilities wsdlUtilities = null;
-
-
- /** ---------------------------- Costruttori --------------------------- */
- /** NOTA: le importsDocument riguardano i WSDL Imports e non gli xsd imports!!!!!!! */
-
- /**
- * Costruttore. Inizializza questo WSDLWrapper leggendo il WSDL dal path.
- * @param file Il file dal quale leggere il WSDL.
- */
- public DefinitionWrapper(File file,AbstractXMLUtils xmlUtils)throws WSDLException{
- this(file,xmlUtils,false,true);
- }
- public DefinitionWrapper(File file,AbstractXMLUtils xmlUtils,boolean verbose,boolean importsDocument)throws WSDLException{
- this.xmlUtils = xmlUtils;
- this.wsdlUtilities = WSDLUtilities.getInstance(this.xmlUtils);
- if (file != null){
- this.wsdlDefinition = this.wsdlUtilities.readWSDLFromFile(file,verbose,importsDocument);
- this.path = file.getAbsolutePath();
- try {
- this.wsdlDefinitionNode = xmlUtils.newDocument(file);
- }catch(Throwable t) {}
- }else{
- throw new WSDLException("WSDL(File file)","File wsdl non fornitp");
- }
- }
-
- /**
- * Costruttore. Inizializza questo WSDLWrapper leggendo il WSDL dal path.
- * @param path Il path dal quale leggere il WSDL.
- */
- public DefinitionWrapper(String path,AbstractXMLUtils xmlUtils)throws WSDLException{
- this(path,xmlUtils,false,true);
- }
- public DefinitionWrapper(String path,AbstractXMLUtils xmlUtils,boolean verbose,boolean importsDocument)throws WSDLException{
- this.xmlUtils = xmlUtils;
- this.wsdlUtilities = WSDLUtilities.getInstance(this.xmlUtils);
- if (path != null){
- this.wsdlDefinition = this.wsdlUtilities.readWSDLFromLocation(path,verbose,importsDocument);
- this.path = path;
- try {
- this.wsdlDefinitionNode = xmlUtils.newDocument(new File(path));
- }catch(Throwable t) {}
- }else{
- throw new WSDLException("WSDL(String path)","Location del wsdl non fornita");
- }
- }
- /**
- * Costruttore. Inizializza questo WSDLWrapper leggendo il WSDL da bytes.
- * @param bytes I bytes da cui leggere il WSDL.
- */
- public DefinitionWrapper(byte[] bytes,AbstractXMLUtils xmlUtils)throws WSDLException{
- this(bytes,xmlUtils,false,true);
- }
- public DefinitionWrapper(byte[] bytes,AbstractXMLUtils xmlUtils,boolean verbose,boolean importsDocument)throws WSDLException{
- this.xmlUtils = xmlUtils;
- this.wsdlUtilities = WSDLUtilities.getInstance(this.xmlUtils);
- if (bytes != null){
- this.wsdlDefinition = this.wsdlUtilities.readWSDLFromBytes(bytes,verbose,importsDocument);
- try {
- this.wsdlDefinitionNode = xmlUtils.newDocument(bytes);
- }catch(Throwable t) {}
- }else{
- throw new WSDLException("WSDL(byte[] bytes)","Bytes del wsdl non forniti");
- }
- }
- /**
- * Costruttore. Inizializza questo WSDLWrapper da un documento WSDL gia' letto.
- * @param doc Il Document con il WSDL gia' parsato.
- */
- public DefinitionWrapper(Document doc,AbstractXMLUtils xmlUtils)throws WSDLException{
- this(doc,xmlUtils,false,true);
- }
- public DefinitionWrapper(Document doc,AbstractXMLUtils xmlUtils,boolean verbose,boolean importsDocument) throws WSDLException {
- this.xmlUtils = xmlUtils;
- this.wsdlUtilities = WSDLUtilities.getInstance(this.xmlUtils);
- if (doc != null){
- this.wsdlDefinition = this.wsdlUtilities.readWSDLFromDocument(doc,verbose,importsDocument);
- this.wsdlDefinitionNode = doc;
- }else{
- throw new WSDLException("WSDL(Document doc)","Document del wsdl non fornito");
- }
- }
- /**
- * Costruttore. Inizializza questo WSDLWrapper da un documento WSDL gia' letto in un elemento XML.
- * @param el L'elemento root del documento XML.
- */
- public DefinitionWrapper(Element el,AbstractXMLUtils xmlUtils)throws WSDLException{
- this(el,xmlUtils,false,true);
- }
- public DefinitionWrapper(Element el,AbstractXMLUtils xmlUtils,boolean verbose,boolean importsDocument) throws WSDLException{
- this.xmlUtils = xmlUtils;
- this.wsdlUtilities = WSDLUtilities.getInstance(this.xmlUtils);
- if (el != null){
- this.wsdlDefinition = this.wsdlUtilities.readWSDLFromElement(el,verbose,importsDocument);
- this.wsdlDefinitionNode = el.getOwnerDocument();
- }else{
- throw new WSDLException("WSDL(Element el)","Element del wsdl non fornito");
- }
- }
- /**
- * Costruttore. Inizializza questo WSDLWrapper da un documento WSDL letto da una URI.
- * @param uri La URI da cui leggere il WSDL.
- */
- public DefinitionWrapper(URI uri,AbstractXMLUtils xmlUtils)throws WSDLException{
- this(uri,xmlUtils, false,true);
- }
- public DefinitionWrapper(URI uri,AbstractXMLUtils xmlUtils,boolean verbose,boolean importsDocument) throws WSDLException{
- this.xmlUtils = xmlUtils;
- this.wsdlUtilities = WSDLUtilities.getInstance(this.xmlUtils);
- if (uri != null){
- this.wsdlDefinition = this.wsdlUtilities.readWSDLFromURI(uri,verbose,importsDocument);
- this.path = uri.getPath();
- }else{
- throw new WSDLException("WSDL(URI uri)","URI del wsdl non fornita");
- }
- }
- /**
- * Costruttore. Inizializza questo WSDLWrapper da un documento WSDL letto da una URI.
- * @param wsdl il WSDL.
- */
- public DefinitionWrapper(javax.wsdl.Definition wsdl,AbstractXMLUtils xmlUtils) throws WSDLException{
- this.xmlUtils = xmlUtils;
- this.wsdlUtilities = WSDLUtilities.getInstance(this.xmlUtils);
- if(wsdl==null)
- throw new WSDLException("WSDL(javax.wsdl.Definition wsdl)","WSDL non fornito");
- this.wsdlDefinition = wsdl;
- }
-
-
-
-
- /**
- * Ritorna la definizione di questo oggetto.
- * @return La definizione di questo oggetto.
- */
- public Definition getWsdlDefinition() {
- return this.wsdlDefinition;
- }
- /**
- * Imposta la definizione di questo oggetto.
- * @param myDef La definizione da aggiornare.
- */
- public void setWsdlDefinitio(Definition myDef) {
- this.wsdlDefinition = myDef;
- }
-
-
-
-
-
- /** ----------------- NAMESPACE -------------------------- */
-
- @Override
- public void addNamespace(String arg0, String arg1) {
- this.wsdlDefinition.addNamespace(arg0, arg1);
- }
-
- @Override
- public Map<?,?> getNamespaces() {
- return this.wsdlDefinition.getNamespaces();
- }
-
- @Override
- public String getNamespace(String arg0) {
- return this.wsdlDefinition.getNamespace(arg0);
- }
- @Override
- public String removeNamespace(String arg0) {
- return this.wsdlDefinition.removeNamespace(arg0);
- }
-
-
-
-
-
-
- /** ----------------- IMPORT -------------------------- */
-
- @Override
- public void addImport(Import arg0) {
- this.wsdlDefinition.addImport(arg0);
- }
-
- @Override
- public Import createImport() {
- return this.wsdlDefinition.createImport();
- }
-
- @Override
- public Map<?,?> getImports() {
- return this.wsdlDefinition.getImports();
- }
-
- @Override
- public List<?> getImports(String arg0) {
- return this.wsdlDefinition.getImports(arg0);
- }
-
- @Override
- public Import removeImport(Import arg0) {
- return this.wsdlDefinition.removeImport(arg0);
- }
-
- public void removeAllImports() throws WSDLException{
- try{
- Map<?,?> importsMap = this.wsdlDefinition.getImports();
- Iterator<?> importsIt = importsMap.values().iterator();
- while(importsIt.hasNext()){
- List<?> imports = (List<?>) importsIt.next();
- for(int i = 0; i<imports.size(); i++){
- Import myimport = (Import) imports.get(i);
- this.wsdlDefinition.removeImport(myimport);
- }
- }
- }catch(Exception e){
- throw new WSDLException("removeAllImports()","Rimozione di tutti gli import non riuscita");
- }
- }
-
-
-
-
-
-
- /** ----------------- TYPES -------------------------- */
-
- @Override
- public Types createTypes() {
- return this.wsdlDefinition.createTypes();
- }
-
- @Override
- public Types getTypes() {
- return this.wsdlDefinition.getTypes();
- }
-
- @Override
- public void setTypes(Types arg0) {
- this.wsdlDefinition.setTypes(arg0);
- }
-
-
-
-
-
-
- /** ----------------- MESSAGE -------------------------- */
-
- @Override
- public void addMessage(Message arg0) {
- this.wsdlDefinition.addMessage(arg0);
- }
-
- @Override
- public Message createMessage() {
- return this.wsdlDefinition.createMessage();
- }
-
- @Override
- public Part createPart() {
- return this.wsdlDefinition.createPart();
- }
-
- @Override
- public Map<?,?> getMessages() {
- //return this.wsdlDefinition.getMessages();
- // BUG: vengono generati come messaggi anche quelli definiti negli input/output delle operations, anche se poi non definite realmente come messages nel wsdl.
- // Per evitare il bug, controllo che siano definite le parts
- Map<?,?> maps = this.wsdlDefinition.getMessages();
- Map<QName,Message> results = new HashMap<QName, Message>();
- Iterator<?> itMessages = maps.keySet().iterator();
- while(itMessages.hasNext()){
- QName key = (QName) itMessages.next();
- Message message = (Message) maps.get(key);
- if(message.getParts()!=null && message.getParts().size()>0){
- results.put(key, message);
- }
- }
- return results;
- }
-
- @Override
- public Message getMessage(QName arg0) {
- return this.wsdlDefinition.getMessage(arg0);
- }
-
- @Override
- public Message removeMessage(QName arg0) {
- return this.wsdlDefinition.removeMessage(arg0);
- }
-
- public void removeAllMessages() throws WSDLException{
- try{
- Map<?,?> m = this.wsdlDefinition.getMessages();
- Iterator<?> it = m.values().iterator();
- List<QName> v = new ArrayList<QName>();
- while (it.hasNext()) {
- v.add(((Message) it.next()).getQName());
- }
- for (int i = 0, j = v.size(); i < j; i++)
- this.wsdlDefinition.removeMessage(v.get(i));
- }catch(Exception e){
- throw new WSDLException("removeAllMessages()","Rimozione di tutti i messaggi non riuscita");
- }
- }
-
-
-
-
-
-
-
- /** ----------------- PORT-TYPE -------------------------- */
-
- @Override
- public void addPortType(PortType arg0) {
- this.wsdlDefinition.addPortType(arg0);
- }
-
- @Override
- public PortType createPortType() {
- return this.wsdlDefinition.createPortType();
- }
-
- @Override
- public Operation createOperation() {
- return this.wsdlDefinition.createOperation();
- }
-
- @Override
- public Input createInput() {
- return this.wsdlDefinition.createInput();
- }
- @Override
- public Output createOutput() {
- return this.wsdlDefinition.createOutput();
- }
-
- @Override
- public Map<?,?> getAllPortTypes() {
- return this.wsdlDefinition.getAllPortTypes();
- }
-
- @Override
- public Map<?,?> getPortTypes() {
- return this.wsdlDefinition.getPortTypes();
- }
-
- @Override
- public PortType getPortType(QName arg0) {
- return this.wsdlDefinition.getPortType(arg0);
- }
-
- public PortType getPortType(String name) throws WSDLException {
- try{
- Map<?,?> m = this.wsdlDefinition.getAllPortTypes();
- //System.out.println("REMOVE SIZE: "+m.size());
- Iterator<?> it = m.values().iterator();
- while (it.hasNext()){
- PortType pt = (PortType)it.next();
- if(pt.getQName()!=null) {
- if(name.equals(pt.getQName().getLocalPart())) {
- return pt;
- }
- }
- }
- return null;
- }catch(Exception e){
- //System.out.println("ERRORE: "+e.getMessage());
- throw new WSDLException("getPortType("+name+")","Ricerca fallita",e);
- }
- }
- @Override
- public PortType removePortType(QName arg0) {
- return this.wsdlDefinition.removePortType(arg0);
- }
- public void removeAllPortTypes() throws WSDLException{
- try{
- Map<?,?> m = this.wsdlDefinition.getAllPortTypes();
- //System.out.println("REMOVE SIZE: "+m.size());
- Iterator<?> it = m.values().iterator();
- List<QName> v = new ArrayList<QName>();
- while (it.hasNext()){
- PortType pt = (PortType)it.next();
- v.add(pt.getQName());
- //System.out.println("ADD REMOVE: "+pt.getQName());
- }
- for (int i=0; i<v.size(); i++){
- //System.out.println("REMOVE: "+v.get(i));
- this.wsdlDefinition.removePortType(v.get(i));
- }
- m = this.wsdlDefinition.getAllPortTypes();
- //System.out.println("SIZE AFTER REMOVE: "+m.size());
- }catch(Exception e){
- //System.out.println("ERRORE: "+e.getMessage());
- throw new WSDLException("removeAllPortTypes()","Rimozione di tutti i port type non riuscita");
- }
- }
-
-
-
-
-
-
- /** ----------------- BINDING -------------------------- */
- @Override
- public void addBinding(Binding arg0) {
- this.wsdlDefinition.addBinding(arg0);
- }
- @Override
- public Binding createBinding() {
- return this.wsdlDefinition.createBinding();
- }
-
- @Override
- public Fault createFault() {
- return this.wsdlDefinition.createFault();
- }
-
- @Override
- public BindingOperation createBindingOperation() {
- return this.wsdlDefinition.createBindingOperation();
- }
-
- @Override
- public BindingFault createBindingFault() {
- return this.wsdlDefinition.createBindingFault();
- }
- @Override
- public BindingInput createBindingInput() {
- return this.wsdlDefinition.createBindingInput();
- }
-
- @Override
- public BindingOutput createBindingOutput() {
- return this.wsdlDefinition.createBindingOutput();
- }
-
- @Override
- public Map<?,?> getAllBindings() {
- return this.wsdlDefinition.getAllBindings();
- }
-
- @Override
- public Binding getBinding(QName arg0) {
- return this.wsdlDefinition.getBinding(arg0);
- }
-
- public Binding getBinding(String name) throws WSDLException {
- try{
- Map<?,?> m = this.wsdlDefinition.getAllBindings();
- Iterator<?> it = m.values().iterator();
- while (it.hasNext()){
- Binding binding = (Binding)it.next();
- if(binding.getQName()!=null) {
- if(name.equals(binding.getQName().getLocalPart())) {
- return binding;
- }
- }
- }
- return null;
- }catch(Exception e){
- throw new WSDLException("getBinding("+name+")","Ricerca fallita",e);
- }
- }
-
- public Binding getBindingByPortType(String portType) throws WSDLException {
- try{
- Map<?,?> m = this.wsdlDefinition.getAllBindings();
- Iterator<?> it = m.values().iterator();
- while (it.hasNext()){
- Binding binding = (Binding)it.next();
- if(binding.getPortType()!=null && binding.getPortType().getQName()!=null) {
- if(portType.equals(binding.getPortType().getQName().getLocalPart())) {
- return binding;
- }
- }
- }
- return null;
- }catch(Exception e){
- throw new WSDLException("getBindingByPortType("+portType+")","Ricerca fallita",e);
- }
- }
-
- @Override
- public Map<?,?> getBindings() {
- return this.wsdlDefinition.getBindings();
- }
-
- @Override
- public Binding removeBinding(QName arg0) {
- return this.wsdlDefinition.removeBinding(arg0);
- }
-
- public void removeAllBindings() throws WSDLException{
- try{
- Map<?,?> m = this.wsdlDefinition.getAllBindings();
- Iterator<?> it = m.values().iterator();
- List<QName> v = new ArrayList<QName>();
- while (it.hasNext()){
- v.add(((Binding)it.next()).getQName());
- }
- for (int i=0, j=v.size(); i<j; i++)
- this.wsdlDefinition.removeBinding(v.get(i));
- }catch(Exception e){
- throw new WSDLException("removeAllBindings()","Rimozione di tutti i bindings non riuscita");
- }
- }
-
- public Map<QName,QName> getMapPortTypesImplementedBinding(){
- Map<QName,QName> list = new HashMap<QName,QName>();
- java.util.Map<?,?> bindings = this.getAllBindings();
- if(bindings==null || bindings.size()==0){
- return list;
- }
- Iterator<?> it = bindings.keySet().iterator();
- while(it.hasNext()) {
- javax.xml.namespace.QName key = (javax.xml.namespace.QName) it.next();
- Binding binding = (Binding) bindings.get(key);
- list.put(binding.getQName(),binding.getPortType().getQName());
- }
- return list;
- }
-
-
-
-
-
- /** ----------------- SERVICES -------------------------- */
- @Override
- public void addService(Service arg0) {
- this.wsdlDefinition.addService(arg0);
- }
- @Override
- public Service createService() {
- return this.wsdlDefinition.createService();
- }
-
- @Override
- public Port createPort() {
- return this.wsdlDefinition.createPort();
- }
- @Override
- public Map<?,?> getAllServices() {
- return this.wsdlDefinition.getAllServices();
- }
-
- @Override
- public Map<?,?> getServices() {
- return this.wsdlDefinition.getServices();
- }
-
- @Override
- public Service getService(QName arg0) {
- return this.wsdlDefinition.getService(arg0);
- }
- public Service getService(String name) throws WSDLException {
- try{
- Map<?,?> m = this.wsdlDefinition.getAllServices();
- Iterator<?> it = m.values().iterator();
- while (it.hasNext()){
- Service service = (Service)it.next();
- if(service.getQName()!=null) {
- if(name.equals(service.getQName().getLocalPart())) {
- return service;
- }
- }
- }
- return null;
- }catch(Exception e){
- throw new WSDLException("getService("+name+")","Ricerca fallita",e);
- }
- }
-
- @Override
- public Service removeService(QName arg0) {
- return this.wsdlDefinition.removeService(arg0);
- }
- public void removeAllServices() throws WSDLException{
- try{
- Map<?,?> m = this.wsdlDefinition.getAllServices();
- Iterator<?> it = m.values().iterator();
- List<QName> v = new ArrayList<QName>();
- while (it.hasNext()){
- v.add(((Service)it.next()).getQName());
- }
- for (int i=0, j=v.size(); i<j; i++)
- this.wsdlDefinition.removeService(v.get(i));
- }catch(Exception e){
- throw new WSDLException("removeAllServices()","Rimozione di tutti i services non riuscita");
- }
- }
-
-
-
- /** ----------------- SERVICES - PORT -------------------------- */
-
- public Port getServicePort(String name) throws WSDLException {
- try{
- Map<?,?> m = this.wsdlDefinition.getAllServices();
- Iterator<?> it = m.values().iterator();
- while (it.hasNext()){
- Service service = (Service)it.next();
- Map<?,?> mPorts = service.getPorts();
- Iterator<?> itPorts = mPorts.values().iterator();
- while (itPorts.hasNext()){
- Port port = (Port)it.next();
- if(name.equals(port.getName())) {
- return port;
- }
- }
- }
- return null;
- }catch(Exception e){
- throw new WSDLException("getServicePort("+name+")","Ricerca fallita",e);
- }
- }
-
- public Port getServicePortByBindingName(String bindingName) throws WSDLException {
- try{
- Map<?,?> m = this.wsdlDefinition.getAllServices();
- Iterator<?> it = m.values().iterator();
- while (it.hasNext()){
- Service service = (Service)it.next();
- Map<?,?> mPorts = service.getPorts();
- Iterator<?> itPorts = mPorts.values().iterator();
- while (itPorts.hasNext()){
- Port port = (Port)itPorts.next();
- if(port.getBinding()!=null && port.getBinding().getQName()!=null) {
- if(bindingName.equals(port.getBinding().getQName().getLocalPart())) {
- return port;
- }
- }
- }
- }
- return null;
- }catch(Exception e){
- throw new WSDLException("getServicePortByBindingName("+bindingName+")","Ricerca fallita",e);
- }
- }
-
- public String getLocation(Port port) throws WSDLException {
- if(port.getExtensibilityElements()!=null) {
- for (Object object : port.getExtensibilityElements()) {
- if(object instanceof SOAPAddress) {
- return ((SOAPAddress)object).getLocationURI();
- }
- else if(object instanceof SOAP12Address) {
- return ((SOAP12Address)object).getLocationURI();
- }
- // System.out.println("ALTRO ["+object.getClass().getName()+"]");
- }
- }
- return null;
- }
-
- public void updateLocation(Port port, String location) throws WSDLException {
- if(port.getExtensibilityElements()!=null) {
- for (Object object : port.getExtensibilityElements()) {
- if(object instanceof SOAPAddress) {
- ((SOAPAddress)object).setLocationURI(location);
- }
- else if(object instanceof SOAP12Address) {
- ((SOAP12Address)object).setLocationURI(location);
- }
- // System.out.println("ALTRO ["+object.getClass().getName()+"]");
- }
- }
- }
-
-
- /** ----------------- OTHER ------------------------- */
- @Override
- public String getDocumentBaseURI() {
- return this.wsdlDefinition.getDocumentBaseURI();
- }
- @Override
- public void setDocumentBaseURI(String arg0) {
- this.wsdlDefinition.setDocumentBaseURI(arg0);
- }
- @Override
- public String getPrefix(String arg0) {
- return this.wsdlDefinition.getPrefix(arg0);
- }
- @Override
- public String getTargetNamespace() {
- return this.wsdlDefinition.getTargetNamespace();
- }
-
- @Override
- public void setTargetNamespace(String arg0) {
- this.wsdlDefinition.setTargetNamespace(arg0);
- }
-
- @Override
- public QName getQName() {
- return this.wsdlDefinition.getQName();
- }
-
- @Override
- public void setQName(QName arg0) {
- this.wsdlDefinition.setQName(arg0);
- }
-
- @Override
- public ExtensionRegistry getExtensionRegistry() {
- return this.wsdlDefinition.getExtensionRegistry();
- }
-
- @Override
- public void setExtensionRegistry(ExtensionRegistry arg0) {
- this.wsdlDefinition.setExtensionRegistry(arg0);
- }
- @Override
- public Element getDocumentationElement() {
- return this.wsdlDefinition.getDocumentationElement();
- }
-
- @Override
- public void setDocumentationElement(Element arg0) {
- this.wsdlDefinition.setDocumentationElement(arg0);
- }
- @Override
- public Object getExtensionAttribute(QName arg0) {
- return this.wsdlDefinition.getExtensionAttribute(arg0);
- }
- @Override
- public Map<?,?> getExtensionAttributes() {
- return this.wsdlDefinition.getExtensionAttributes();
- }
-
- @Override
- public void setExtensionAttribute(QName arg0, Object arg1) {
- this.wsdlDefinition.setExtensionAttribute(arg0, arg1);
- }
- @Override
- public List<?> getNativeAttributeNames() {
- return this.wsdlDefinition.getNativeAttributeNames();
- }
-
- @Override
- public void addExtensibilityElement(ExtensibilityElement arg0) {
- this.wsdlDefinition.addExtensibilityElement(arg0);
- }
- @Override
- public List<?> getExtensibilityElements() {
- return this.wsdlDefinition.getExtensibilityElements();
- }
- @Override
- public ExtensibilityElement removeExtensibilityElement(
- ExtensibilityElement arg0) {
- return this.wsdlDefinition.removeExtensibilityElement(arg0);
- }
- public String getPath() {
- return this.path;
- }
- public void setPath(String path) {
- this.path = path;
- }
-
-
-
-
-
-
- /** ----------------- WRITE TO ------------------------- */
-
- public byte[] toByteArray() throws WSDLException{
- return toByteArray(false);
- }
- public byte[] toByteArray(boolean prettyPrint) throws WSDLException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this.wsdlUtilities.writeWsdlTo(this.wsdlDefinition, bout,prettyPrint);
- bout.flush();
- bout.close();
- return bout.toByteArray();
- }catch(Exception e){
- throw new WSDLException("toByteArray()","Conversione in byte[] non riuscita: "+e.getMessage());
- }
- }
- @Override
- public String toString() {
- return toString(false);
- }
- public String toString(boolean prettyPrint) {
- try{
- return new String(this.toByteArray(prettyPrint));
- }catch(Exception e){
- return null;
- }
- }
-
- public void writeTo(OutputStream out) throws IOException,WSDLException,org.openspcoop2.utils.wsdl.WSDLException{
- writeTo(out,false);
- }
- public void writeTo(OutputStream out,boolean prettyPrint) throws IOException,WSDLException,org.openspcoop2.utils.wsdl.WSDLException{
- this.wsdlUtilities.writeWsdlTo(this.wsdlDefinition, out,prettyPrint);
- }
-
- public void writeTo(Writer writer) throws IOException,WSDLException,org.openspcoop2.utils.wsdl.WSDLException{
- writeTo(writer,false);
- }
- public void writeTo(Writer writer,boolean prettyPrint) throws IOException,WSDLException,org.openspcoop2.utils.wsdl.WSDLException{
- this.wsdlUtilities.writeWsdlTo(this.wsdlDefinition, writer,prettyPrint);
- }
-
- public void writeTo(File file) throws IOException,WSDLException,org.openspcoop2.utils.wsdl.WSDLException{
- writeTo(file,false);
- }
- public void writeTo(File file,boolean prettyPrint) throws IOException,WSDLException,org.openspcoop2.utils.wsdl.WSDLException{
- this.wsdlUtilities.writeWsdlTo(this.wsdlDefinition, file,prettyPrint);
- }
-
- public void writeTo(String absoluteFilePath) throws IOException,WSDLException,org.openspcoop2.utils.wsdl.WSDLException{
- writeTo(absoluteFilePath,false);
- }
- public void writeTo(String absoluteFilePath,boolean prettyPrint) throws IOException,WSDLException,org.openspcoop2.utils.wsdl.WSDLException{
- this.wsdlUtilities.writeWsdlTo(this.wsdlDefinition, absoluteFilePath,prettyPrint);
- }
-
-
-
-
-
-
-
- /** ----------------- VALIDATE ------------------------- */
-
- public void valida() throws org.openspcoop2.utils.wsdl.WSDLException{
- valida(true);
- }
- public void valida(boolean validaBinding) throws org.openspcoop2.utils.wsdl.WSDLException{
-
- // Messages
- Map<?, ?> messages = this.getMessages();
- if(messages==null || messages.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Messages non presenti");
- }
- Iterator<?> itMessages = messages.keySet().iterator();
- while(itMessages.hasNext()){
- javax.xml.namespace.QName keyMessage = (javax.xml.namespace.QName) itMessages.next();
- int count = 0;
- Iterator<?> itMessagesCheck = messages.keySet().iterator();
- while(itMessagesCheck.hasNext()){
- javax.xml.namespace.QName keyMessageCheck = (javax.xml.namespace.QName) itMessagesCheck.next();
- if(keyMessageCheck.equals(keyMessage)){
- count++;
- }
- }
- if(count>1){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:message "+keyMessage+" definito piu' di una volta");
- }
- }
-
- // Port-types
- Map<?, ?> porttypes = this.getAllPortTypes();
- if(porttypes==null || porttypes.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Port types non presenti");
- }
- Iterator<?> itPortTypes = porttypes.keySet().iterator();
- while(itPortTypes.hasNext()){
- javax.xml.namespace.QName keyPT = (javax.xml.namespace.QName) itPortTypes.next();
- int count = 0;
- Iterator<?> itPTCheck = porttypes.keySet().iterator();
- while(itPTCheck.hasNext()){
- javax.xml.namespace.QName keyPTCheck = (javax.xml.namespace.QName) itPTCheck.next();
- if(keyPTCheck.equals(keyPT)){
- count++;
- }
- }
- if(count>1){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Port type "+keyPT+" definito piu' di una volta");
- }
- }
- Iterator<?> it = porttypes.keySet().iterator();
- while(it.hasNext()){
- javax.xml.namespace.QName key = (javax.xml.namespace.QName) it.next();
- javax.wsdl.PortType pt = (javax.wsdl.PortType) porttypes.get(key);
-
- // operation port type
- List<?> operations = pt.getOperations();
- if(operations==null || operations.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Port type "+key+" non possiede operations");
- }
- Iterator<?> itOperations = operations.iterator();
- while(itOperations.hasNext()){
- javax.wsdl.Operation op = (javax.wsdl.Operation) itOperations.next();
- String keyOp = op.getName();
- int count = 0;
- Iterator<?> itOperationsCheck = operations.iterator();
- while(itOperationsCheck.hasNext()){
- javax.wsdl.Operation opCheck = (javax.wsdl.Operation) itOperationsCheck.next();
- String keyOpCheck = opCheck.getName();
- if(keyOpCheck.equals(keyOp)){
- count++;
- }
- }
- if(count>1){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Port type "+key+" possiede l'operation "+keyOp+" definita piu' di una volta");
- }
- }
-
- for(int i=0; i<operations.size();i++){
- javax.wsdl.Operation op = (javax.wsdl.Operation) operations.get(i);
-
- Input input = op.getInput();
- Output output = op.getOutput();
-
- String bindingWarning = "";
- try{
- java.util.Map<?,?> bindings = this.getAllBindings();
- if(bindings!=null && bindings.size()>0){
- bindingWarning = " (Verificare che il problema non sia dovuto a errori ereditati da una definizione del binding non corretta (es. port-type indicato nel binding inesistente))";
- }
- }catch(Throwable e){}
-
- // INPUT
- if(input==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato definito un input per l'operation "+op.getName()+" (Port type "+key+")"+bindingWarning);
- }
- if(input.getMessage()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato definito un input message per l'operation "+op.getName()+" (Port type "+key+")"+bindingWarning);
- }
- if(input.getMessage().getQName()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato definito un input message (QName) per l'operation "+op.getName()+" (Port type "+key+")"+bindingWarning);
- }
- QName messageInput = input.getMessage().getQName();
- itMessages = messages.keySet().iterator();
- boolean findMessageInput = false;
- while(itMessages.hasNext()){
- javax.xml.namespace.QName keyMessage = (javax.xml.namespace.QName) itMessages.next();
- if(
- ( (messageInput.getNamespaceURI()==null) && (messageInput.getPrefix()==null) )
- ||
- ( "".equals(messageInput.getNamespaceURI()) && "".equals(messageInput.getPrefix()) )
- ){ // workaroung necessario per axiomDocumentBuilder
- if(keyMessage.getLocalPart().equals(messageInput.getLocalPart())){
- findMessageInput = true;
- }
- }else{
- if(keyMessage.equals(messageInput)){
- findMessageInput = true;
- }
- }
- }
- if(!findMessageInput){
-
- // BUG: vengono generati come messaggi anche quelli definiti negli input/output delle operations, anche se poi non definite realmente come messages nel wsdl.
- // Per evitare il bug, controllo che siano definite le parts nel metodo Map<?, ?> messages = this.getMessages();
- // Purtroppo nel caso esistano davvero dei messaggi che però sono senza parts, questi non vengono trovati e si lancia l'errore seguente.
- // Per sopperire all'errore si fa un controllo ulteriore tramite xpath
- if(this.wsdlDefinitionNode!=null) {
- XPathExpressionEngine xpathEngine = new XPathExpressionEngine();
- DynamicNamespaceContext dnc = new DynamicNamespaceContext();
- dnc.findPrefixNamespace(this.wsdlDefinitionNode);
- try {
- Object object = xpathEngine.getMatchPattern((Document)this.wsdlDefinitionNode, dnc, "//{http://schemas.xmlsoap.org/wsdl/}message", XPathReturnType.NODESET);
- if(object instanceof NodeList) {
- NodeList nList = (NodeList) object;
- for (int j = 0; j < nList.getLength(); j++) {
- Node n = nList.item(j);
- if(n.getAttributes()!=null && n.getAttributes().getLength()>0) {
- Node nn = n.getAttributes().getNamedItem("name");
- if(nn!=null) {
- String value = nn.getNodeValue();
- //System.out.println("DDDDDD localName["+nn.getLocalName()+"] namespace["+nn.getNamespaceURI()+"] value["+nn.getNodeValue()+"] ["+nn.getClass().getName()+"]");
- if(messageInput.getLocalPart()!=null && messageInput.getLocalPart().equals(value)) {
- findMessageInput = true;
- break;
- }
- }
- }
- }
- }
- }catch(Throwable t) {}
- }
-
- if(!findMessageInput){
- throw new org.openspcoop2.utils.wsdl.WSDLException("E' stato associato un wsdl:message inesistente ("+messageInput+") all'input dell'operation "+op.getName()+" (Port type "+key+")"+bindingWarning);
- }
- }
-
- // OUTPUT
- if(output!=null){
- if(output.getMessage()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato definito un output message per l'operation "+op.getName()+" (Port type "+key+")"+bindingWarning);
- }
- if(output.getMessage().getQName()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato definito un output message (QName) per l'operation "+op.getName()+" (Port type "+key+")"+bindingWarning);
- }
-
- QName messageOutput = input.getMessage().getQName();
- itMessages = messages.keySet().iterator();
- boolean findMessageOutput = false;
- while(itMessages.hasNext()){
- javax.xml.namespace.QName keyMessage = (javax.xml.namespace.QName) itMessages.next();
- if(
- ( (messageOutput.getNamespaceURI()==null) && (messageOutput.getPrefix()==null) )
- ||
- ( "".equals(messageOutput.getNamespaceURI()) && "".equals(messageOutput.getPrefix()) )
- ){ // workaroung necessario per axiomDocumentBuilder
- if(keyMessage.getLocalPart().equals(messageOutput.getLocalPart())){
- findMessageOutput = true;
- }
- }else{
- if(keyMessage.equals(messageOutput)){
- findMessageOutput = true;
- }
- }
- }
- if(!findMessageOutput){
-
- // BUG: vengono generati come messaggi anche quelli definiti negli input/output delle operations, anche se poi non definite realmente come messages nel wsdl.
- // Per evitare il bug, controllo che siano definite le parts nel metodo Map<?, ?> messages = this.getMessages();
- // Purtroppo nel caso esistano davvero dei messaggi che però sono senza parts, questi non vengono trovati e si lancia l'errore seguente.
- // Per sopperire all'errore si fa un controllo ulteriore tramite xpath
- if(this.wsdlDefinitionNode!=null) {
- XPathExpressionEngine xpathEngine = new XPathExpressionEngine();
- DynamicNamespaceContext dnc = new DynamicNamespaceContext();
- dnc.findPrefixNamespace(this.wsdlDefinitionNode);
- try {
- Object object = xpathEngine.getMatchPattern((Document)this.wsdlDefinitionNode, dnc, "//{http://schemas.xmlsoap.org/wsdl/}message", XPathReturnType.NODESET);
- if(object instanceof NodeList) {
- NodeList nList = (NodeList) object;
- for (int j = 0; j < nList.getLength(); j++) {
- Node n = nList.item(j);
- if(n.getAttributes()!=null && n.getAttributes().getLength()>0) {
- Node nn = n.getAttributes().getNamedItem("name");
- if(nn!=null) {
- String value = nn.getNodeValue();
- //System.out.println("DDDDDD localName["+nn.getLocalName()+"] namespace["+nn.getNamespaceURI()+"] value["+nn.getNodeValue()+"] ["+nn.getClass().getName()+"]");
- if(messageOutput.getLocalPart()!=null && messageOutput.getLocalPart().equals(value)) {
- findMessageOutput = true;
- break;
- }
- }
- }
- }
- }
- }catch(Throwable t) {}
- }
-
- if(!findMessageOutput){
- throw new org.openspcoop2.utils.wsdl.WSDLException("E' stato associato un wsdl:message inesistente ("+messageOutput+") all'output dell'operation "+op.getName()+" (Port type "+key+")"+bindingWarning);
- }
- }
- }
- }
- }
-
- if(validaBinding){
-
- java.util.Map<?,?> bindings = this.getAllBindings();
- if(bindings==null || bindings.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Bindings non presenti");
- }
- Iterator<?> itBindings = bindings.keySet().iterator();
- while(itBindings.hasNext()){
- javax.xml.namespace.QName keyBinding = (javax.xml.namespace.QName) itBindings.next();
- int count = 0;
- Iterator<?> itBindingsCheck = bindings.keySet().iterator();
- while(itBindingsCheck.hasNext()){
- javax.xml.namespace.QName keyBindingCheck = (javax.xml.namespace.QName) itBindingsCheck.next();
- if(keyBindingCheck.equals(keyBinding)){
- count++;
- }
- }
- if(count>1){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:binding "+keyBinding+" definito piu' di una volta");
- }
- }
- it = bindings.keySet().iterator();
- while(it.hasNext()) {
- javax.xml.namespace.QName key = (javax.xml.namespace.QName) it.next();
- Binding binding = (Binding) bindings.get(key);
-
- if(binding.getPortType()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato associato un port type al binding "+key);
- }
- if(binding.getPortType().getQName()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato associato un port type (Qname) al binding "+key);
- }
-
- QName portTypeQname = binding.getPortType().getQName();
- boolean findPT = false;
- Iterator<?> itPT = this.getPortTypes().keySet().iterator();
- while(itPT.hasNext()){
- javax.xml.namespace.QName keyPT = (javax.xml.namespace.QName) itPT.next();
- if(keyPT.equals(portTypeQname)){
- findPT = true;
- break;
- }
- }
- if(!findPT){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Il port type "+portTypeQname+" associato al binding "+key +" non esiste");
- }
-
-
- }
-
- java.util.Map<?,?> services = this.getAllServices();
- if(services==null || services.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Services non presenti");
- }
- Iterator<?> itServices = services.keySet().iterator();
- while(itServices.hasNext()){
- javax.xml.namespace.QName keyService = (javax.xml.namespace.QName) itServices.next();
- int count = 0;
- Iterator<?> itServicesCheck = services.keySet().iterator();
- while(itServicesCheck.hasNext()){
- javax.xml.namespace.QName keyServiceCheck = (javax.xml.namespace.QName) itServicesCheck.next();
- if(keyServiceCheck.equals(keyService)){
- count++;
- }
- }
- if(count>1){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:service "+keyService+" definito piu' di una volta");
- }
- }
- it = services.keySet().iterator();
- while(it.hasNext()) {
- javax.xml.namespace.QName keyService = (javax.xml.namespace.QName) it.next();
- Service service = (Service) services.get(keyService);
-
- java.util.Map<?,?> ports = service.getPorts();
- if(ports==null || ports.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Ports non presenti per il service "+keyService);
- }
-
- Iterator<?> itPort = ports.keySet().iterator();
- while(itPort.hasNext()) {
- String keyPort = (String) itPort.next();
- Port port = (Port) ports.get(keyPort);
-
- if(port.getBinding()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:port "+keyPort+" non possiede un binding associato (service "+keyService+")");
- }
- if(port.getBinding().getQName()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:port "+keyPort+" non possiede un binding (QName) associato (service "+keyService+")");
- }
-
- QName bindingQName = port.getBinding().getQName();
- boolean findBinding = false;
- itBindings = this.getAllBindings().keySet().iterator();
- while(itBindings.hasNext()){
- javax.xml.namespace.QName keyBinding = (javax.xml.namespace.QName) itBindings.next();
- if(keyBinding.equals(bindingQName)){
- findBinding = true;
- break;
- }
- }
- if(!findBinding){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Binding "+bindingQName+" associato al wsdl:port "+keyPort +" non esiste (service "+keyService+")");
- }
- }
- }
- }
- }
-
- public void validaBinding(List<String> portTypes) throws org.openspcoop2.utils.wsdl.WSDLException{
-
- java.util.Map<?,?> bindings = this.getAllBindings();
- if(bindings==null || bindings.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Bindings non presenti");
- }
- Iterator<?> itBindings = bindings.keySet().iterator();
- while(itBindings.hasNext()){
- javax.xml.namespace.QName keyBinding = (javax.xml.namespace.QName) itBindings.next();
- int count = 0;
- Iterator<?> itBindingsCheck = bindings.keySet().iterator();
- while(itBindingsCheck.hasNext()){
- javax.xml.namespace.QName keyBindingCheck = (javax.xml.namespace.QName) itBindingsCheck.next();
- if(keyBindingCheck.equals(keyBinding)){
- count++;
- }
- }
- if(count>1){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:binding "+keyBinding+" definito piu' di una volta");
- }
- }
- Iterator<?> it = bindings.keySet().iterator();
- while(it.hasNext()) {
- javax.xml.namespace.QName key = (javax.xml.namespace.QName) it.next();
- Binding binding = (Binding) bindings.get(key);
-
- if( !(
- ( (key.getNamespaceURI()==null) && (key.getPrefix()==null) )
- ||
- ( "".equals(key.getNamespaceURI()) && "".equals(key.getPrefix()) )
- )
- ){ // workaroung necessario per axiomDocumentBuilder
-
- if(binding.getPortType()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato associato un port type al binding "+key);
- }
- if(binding.getPortType().getQName()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Non e' stato associato un port type (QName) al binding "+key);
- }
-
- QName portTypeQname = binding.getPortType().getQName();
- boolean findPT = false;
- for(int i=0; i<portTypes.size(); i++){
- String keyPT = portTypes.get(i);
- //System.out.println("CHECK ["+keyPT+"]==["+portTypes.get(i)+"]");
- if(keyPT.equals(portTypeQname.getLocalPart())){
- //System.out.println("FIND");
- findPT = true;
- break;
- }
- }
- if(!findPT){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Il port type "+portTypeQname+" associato al binding "+key +" non esiste");
- }
- }
-
-
- }
-
- java.util.Map<?,?> services = this.getAllServices();
- if(services==null || services.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Services non presenti");
- }
- Iterator<?> itServices = services.keySet().iterator();
- while(itServices.hasNext()){
- javax.xml.namespace.QName keyService = (javax.xml.namespace.QName) itServices.next();
- int count = 0;
- Iterator<?> itServicesCheck = services.keySet().iterator();
- while(itServicesCheck.hasNext()){
- javax.xml.namespace.QName keyServiceCheck = (javax.xml.namespace.QName) itServicesCheck.next();
- if(keyServiceCheck.equals(keyService)){
- count++;
- }
- }
- if(count>1){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:service "+keyService+" definito piu' di una volta");
- }
- }
- it = services.keySet().iterator();
- while(it.hasNext()) {
- javax.xml.namespace.QName keyService = (javax.xml.namespace.QName) it.next();
- Service service = (Service) services.get(keyService);
-
- java.util.Map<?,?> ports = service.getPorts();
- if(ports==null || ports.size()==0){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Ports non presenti per il service "+keyService);
- }
-
- Iterator<?> itPort = ports.keySet().iterator();
- while(itPort.hasNext()) {
- String keyPort = (String) itPort.next();
- Port port = (Port) ports.get(keyPort);
-
- if(port.getBinding()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:port "+keyPort+" non possiede un binding associato (service "+keyService+")");
- }
- if(port.getBinding().getQName()==null){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Wsdl:port "+keyPort+" non possiede un binding (QName) associato (service "+keyService+")");
- }
-
- QName bindingQName = port.getBinding().getQName();
- boolean findBinding = false;
- itBindings = this.getAllBindings().keySet().iterator();
- while(itBindings.hasNext()){
- javax.xml.namespace.QName keyBinding = (javax.xml.namespace.QName) itBindings.next();
- if(keyBinding.equals(bindingQName)){
- findBinding = true;
- break;
- }
- }
- if(!findBinding){
- throw new org.openspcoop2.utils.wsdl.WSDLException("Binding "+bindingQName+" associato al wsdl:port "+keyPort +" non esiste (service "+keyService+")");
- }
- }
- }
- }
-
- }