CMDBuild Forum

Utilizzo dei WebServices per accedere a CMDBuild

Salve a tutti,

sto effettuando qualche sperimentazione sul CMDBuild scaricato qualche giorno fa, per valutarne la fruibilità in ottica bancaria.

L'ho installato senza problemi ma adesso che vorrei utilizzarlo via WS sto perdendo un po' di tempo.

Nel dettaglio di seguito le azioni svolte

  1. ho provato ad utilizzare  direttamente il client (cmdbuild-ws-client-2.3.0) ma la parte di autenticazione (il WebServiceStub di alcuni esempi) non l'ho trovato;
  2. allora ho generato tutto con cxf ma lo stub non contiene nel costruttore il ConfigurationContext 
Perciò ecco le domande
  1. è possibile avere un esempio completo con utilizzo del client e con i riferimenti su come recuperare 
  • tutte le classi anche per l'autenticazione magari con Metro (visto che abbiamo avuto problemi nell'utilizzare rampart ed axis2 con was8.5 (incompatibilità in quanto anche il was utilizza axis2))
  • il file policy.xml per rampart
  • qualora non fosse possibile il punto 1, vi chiederei indicazioni/link su come superare l'empasse
  • Di seguito l'esempio che avevo trovato nel forum che ho usato come linea guida
     
    public static void main(String[] args) {
            // TODO Auto-generated method stub

            try {
                
                ConfigurationContext configContext =    ConfigurationContextFactory.createConfigurationContextFromFileSystem("C:/RepoProva/", null);
                WebservicesStub stub  = new WebservicesStub(configContext);
                stub._getServiceClient().engageModule("rampart-1.4");
                StAXOMBuilder builder = new StAXOMBuilder("C:/RepoProva/conf/policy.xml");
                org.apache.axis2.client.Options options = stub._getServiceClient().getOptions();
                options.setUserName("admin");
                options.setPassword("admin");
                Policy policy = PolicyEngine.getPolicy(builder.getDocumentElement());
                options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
                GetCardList list = new GetCardList();
                list.setClassName("Stampante");
                GetCardListResponse response = stub.getCardList(list);
                Card[] card = response.get_return();
            
                System.out.println(card[0].getDescription());
                
                
            } catch (AxisFault e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (XMLStreamException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (RemoteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
            
            catch (SOAPExceptionException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
    }
     
    Grazie in anticipo,
    per ogni aiuto che potrete darmi.
     
    Francesco Ancona

    Ciao,

     

    con la nuova versione 2.3 c'è la possibilità di utilizzare i Web Service REST più semplici da utilizzare...

    Di seguito ti fornisco un semplice esempio client REST in Python 3:

     

    import http.client
    import json
    

    data1 = {
    ‘password’: ‘’,
    ‘username’: '

    }
    params = json.dumps(data1)

    headers = {“Content-type”: “application/json”}

    conn = http.client.HTTPConnection(“vmcmdbs.intra.camera.it:8080”)
    conn.request(“POST”, “/svil/services/rest/v1/sessions/”,params,headers)

    response = conn.getresponse()
    print(response.status, response.reason)

    data = response.read()

    print(data)
    conn.close()

     

    Previously Francesco Toti wrote:

    Salve a tutti,

    sto effettuando qualche sperimentazione sul CMDBuild scaricato qualche giorno fa, per valutarne la fruibilità in ottica bancaria.

    L'ho installato senza problemi ma adesso che vorrei utilizzarlo via WS sto perdendo un po' di tempo.

    Nel dettaglio di seguito le azioni svolte

    1. ho provato ad utilizzare  direttamente il client (cmdbuild-ws-client-2.3.0) ma la parte di autenticazione (il WebServiceStub di alcuni esempi) non l'ho trovato;
    2. allora ho generato tutto con cxf ma lo stub non contiene nel costruttore il ConfigurationContext 
    Perciò ecco le domande
    1. è possibile avere un esempio completo con utilizzo del client e con i riferimenti su come recuperare 
    • tutte le classi anche per l'autenticazione magari con Metro (visto che abbiamo avuto problemi nell'utilizzare rampart ed axis2 con was8.5 (incompatibilità in quanto anche il was utilizza axis2))
    • il file policy.xml per rampart
  • qualora non fosse possibile il punto 1, vi chiederei indicazioni/link su come superare l'empasse
  • Di seguito l'esempio che avevo trovato nel forum che ho usato come linea guida
     
    public static void main(String[] args) {
            // TODO Auto-generated method stub

            try {
                
                ConfigurationContext configContext =    ConfigurationContextFactory.createConfigurationContextFromFileSystem("C:/RepoProva/", null);
                WebservicesStub stub  = new WebservicesStub(configContext);
                stub._getServiceClient().engageModule("rampart-1.4");
                StAXOMBuilder builder = new StAXOMBuilder("C:/RepoProva/conf/policy.xml");
                org.apache.axis2.client.Options options = stub._getServiceClient().getOptions();
                options.setUserName("admin");
                options.setPassword("admin");
                Policy policy = PolicyEngine.getPolicy(builder.getDocumentElement());
                options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
                GetCardList list = new GetCardList();
                list.setClassName("Stampante");
                GetCardListResponse response = stub.getCardList(list);
                Card[] card = response.get_return();
            
                System.out.println(card[0].getDescription());
                
                
            } catch (AxisFault e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (XMLStreamException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (RemoteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
            
            catch (SOAPExceptionException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
    }
     
    Grazie in anticipo,
    per ogni aiuto che potrete darmi.
     
    Francesco Ancona