Simon Fell > Its just code > Axis 2.0 with SForce
Monday, October 3, 2005
The codegen / compile problems in Axis 2 with the SForce WSDL are fixed in SVN (quick turnaround!). I didn't think they'd manage it, but somehow they managed to make using an Axis 2.0 client even more long winded than Indigo, perhaps I'm doing something wrong ?
public static void main(String[] args) throws Exception {
SoapStub stub = new SoapStub();
CallOptionsDocument od = CallOptionsDocument.Factory.newInstance();
CallOptions options = CallOptions.Factory.newInstance();
od.setCallOptions(options);
Login l = Login.Factory.newInstance();
l.setUsername("[username]");
l.setPassword("[password]");
LoginDocument ld = LoginDocument.Factory.newInstance();
ld.setLogin(l);
LoginResult lr = stub.login(ld, od).getLoginResponse().getResult();
System.out.println("new SessionId is " + lr.getSessionId());
System.out.println("new ServerUrl is " + lr.getServerUrl());
stub = new SoapStub(null, lr.getServerUrl());
SessionHeaderDocument sd = SessionHeaderDocument.Factory.newInstance();
SessionHeader session = SessionHeader.Factory.newInstance();
session.setSessionId(lr.getSessionId());
sd.setSessionHeader(session);
QueryOptionsDocument qod = QueryOptionsDocument.Factory.newInstance();
QueryOptions qo = QueryOptions.Factory.newInstance();
qod.setQueryOptions(qo);
QueryDocument queryD = QueryDocument.Factory.newInstance();
Query query = Query.Factory.newInstance();
query.setQueryString("select id, name, accountNumber from Account");
queryD.setQuery(query);
QueryResult qres = stub.query(queryD, sd, od, qod).getQueryResponse().getResult();
System.out.println("total query size is " + qres.getSize());
}
I must of missed the Gartner report that said the programming model for WS stacks needed to be more verbose, both Axis 2.0 & Indigo have programming models that require heaps more boiler plate code than their previous counterparts.