[armedbear-devel] java interop question

Kevin Raison raison at chatsubo.net
Tue Oct 12 20:01:04 UTC 2010


I am an old hand at cl, but java is still a bit of a mystery to me.  I 
am particularly puzzled as to why, when trying to use the apache http 
components library to do a simple http get in abcl, I cannot make it 
work.  My code:

(defun http-get (url)
   (let* ((url (jnew (jclass "java.lang.String") url))
          (client-class (jclass 
"org.apache.http.impl.client.DefaultHttpClient"))
          (client-obj (jnew client-class))
          (get-class (jclass "org.apache.http.client.methods.HttpGet"))
          (get-obj (jnew get-class url)))
     (jcall (jmethod client-class "execute") client-obj get-obj)))


And the java code from the apache tutorial 
http://hc.apache.org/httpcomponents-client-4.0.3/tutorial/html/fundamentals.html:

HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost/");
HttpResponse response = httpclient.execute(httpget);
...


For some reason, my code fails with
No such method: org.apache.http.impl.client.DefaultHttpClient.execute().

I do have the appropriate jars in my class path.

The java code specifically calls the execute method on its instantiated 
httpclient, but I cannot do the same from abcl.  This method is 
inherited from org.apache.http.impl.client.AbstractHttpClient, in case 
that makes a difference. 
(http://hc.apache.org/httpcomponents-client-4.0.3/httpclient/apidocs/index.html).

Thanks for any insight!

-Kevin




More information about the armedbear-devel mailing list