CMDBuild Forum

Re: Query CMDBuild WebService

Ciao, ho installato cmdbuild 1.1 in locale sulla mia macchina  e come db uso postgresql 8.3.

Ho utilizzato la 1.1 perchè avevo necessità di utilizzare il WebService di CMDBuild.

Tutti i metodi risultano funzionanti; l'unico problema riscontrato è nelle query (Filter):

 

public class Test {
        private static final String ENDPOINT = "http://localhost:8080/cmdbuild/services/soap/Webservices";
    public static void main (String[] args) throws Exception{
        ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem("C:/Tomcat6.0/webapps/cmdbuild/WEB-INF","C:/Tomcat6.0/webapps/cmdbuild/WEB-INF/conf/axis2.xml");
        WebservicesStub stub = new WebservicesStub(configContext,ENDPOINT);
            ServiceClient client = stub._getServiceClient();
            StAXOMBuilder builder=new StAXOMBuilder("C:/Tomcat6.0/webapps/cmdbuild-shark/conf/axisrepository/conf/policy.xml");
             OMElement OE= builder.getDocumentElement();
             Policy policy=PolicyEngine.getPolicy(OE);
             Options options = client.getOptions();             
             options.setUserName("username");
             options.setPassword("password");
             options.setProperty(RampartMessageData.KEY_RAMPART_POLICY,policy);
             GetCardList list=new GetCardList();
             Query param=new Query();
             Filter param1=new Filter();
             GetAttributeList gl=new GetAttributeList();
             gl.setClassName("ClasseMadre");
             GetAttributeListResponse response=stub.getAttributeList(gl);
             AttributeSchema[] att=response.get_return();
            int index=55;
             for(int j=0;j<att.length;j++){
                 if(att[j].getName().equalsIgnoreCase("code"))
                     index=j;
             
             }//ho fatto cosi per essere sicuro che il nome dell'attributo fosse che inserivo in param1 fosse quello corretto
                    
             param1.setName(att[index].getName());
             param1.setOperator(Operator_type1.CONTAINS);
             param1.addValue("s");
             param.setFilter(param1);
             list.setQueryType(param);
             list.setClassName("ClasseMadre");
             Order param3 =new Order() ;
             param3.setColumnName("Code");
             param3.setType(Type_type1.DESC);
            list.addOrderType(param3);
           
             GetCardListResponse resp=stub.getCardList(list);
             Card[] card=resp.get_return();
             for(int i=0;i<card.length;i++){
                 System.out.println(card[i].getCode());
             }
            
       
    }
}

 

Questo il codice che io mando in esecuzione, ricevo come risultato tutte le card di ClasseMadre; anche quelle che non dovrebbero essere stampate, come se non avessi inserito l'oggetto Filter.

Potreste spiegarmi come posso risolvere il problema? Grazie.

La versione 1.1 risale ormai a quasi 4 anni fa e non è più supportata.

Se la sua necessità è quello di utilizzare il webservice di CMDBuild può tranquillamente installare l'ultima versione 2.1 in cui il webservice rimane ovviamente disponibile.

Qui trova il manuale del webservice aggiornato della versione 2.1 http://www.cmdbuild.org/it/documentazione/manuali/webservice-manual

CMDBuild Team

Previously Tecnoteca wrote:

La versione 1.1 risale ormai a quasi 4 anni fa e non è più supportata.

Se la sua necessità è quello di utilizzare il webservice di CMDBuild può tranquillamente installare l'ultima versione 2.1 in cui il webservice rimane ovviamente disponibile.

Qui trova il manuale del webservice aggiornato della versione 2.1 http://www.cmdbuild.org/it/documentazione/manuali/webservice-manual

CMDBuild Team

Grazie, provvedo subito ad aggiornarmi.

 

 

Roberto