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.