Sunday, April 10, 2016

Sending sms with twilio: The API package 'urlfetch' or call 'Fetch()' was not found

Leave a Comment

I'm running this code:

ACCOUNT_SID, AUTH_TOKEN = are from my account

public static void main(String[] args) throws TwilioRestException {      TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);      Account account = client.getAccount();      MessageFactory messageFactory = account.getMessageFactory();     List<NameValuePair> params = new ArrayList<NameValuePair>();     params.add(new BasicNameValuePair("To", ...my number...));     params.add(new BasicNameValuePair("From", ...my twilio number..));     params.add(new BasicNameValuePair("Body", "Where's Wallace?"));     Message sms = messageFactory.create(params);      String a = "1"; } 

but get this exception when running messageFactory.create

I have run:

mvn appengine:devserver 

any idea how to fix this?

java.lang.reflect.InvocationTargetException     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:483)     at com.twilio.sdk.AppEngineClientConnection.flush(AppEngineClientConnection.java:197)     at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:258)     at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)     at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)     at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:410)     at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:581)     at com.twilio.sdk.resource.list.MessageList.create(MessageList.java:70)     at com.waze.beacon.inline.server.services.SmsSenderImp.main(SmsSenderImp.java:33) Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.     at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:111)     at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:38)     ... 16 more Apr 01, 2016 10:07:51 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: I/O exception (java.io.IOException) caught when processing request: Error flushing content in Google App Engine fetch Apr 01, 2016 10:07:51 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: Retrying request java.lang.reflect.InvocationTargetException     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:483)     at com.twilio.sdk.AppEngineClientConnection.flush(AppEngineClientConnection.java:197)     at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:258)     at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)     at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)     at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:410)     at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:581)     at com.twilio.sdk.resource.list.MessageList.create(MessageList.java:70)     at com.waze.beacon.inline.server.services.SmsSenderImp.main(SmsSenderImp.java:33) Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.     at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:111)     at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:38)     ... 16 more Apr 01, 2016 10:07:51 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: I/O exception (java.io.IOException) caught when processing request: Error flushing content in Google App Engine fetch Apr 01, 2016 10:07:51 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: Retrying request java.lang.reflect.InvocationTargetException     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:483)     at com.twilio.sdk.AppEngineClientConnection.flush(AppEngineClientConnection.java:197)     at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:258)     at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)     at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)     at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:410)     at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:581)     at com.twilio.sdk.resource.list.MessageList.create(MessageList.java:70)     at com.waze.beacon.inline.server.services.SmsSenderImp.main(SmsSenderImp.java:33) Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.     at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:111)     at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:38)     ... 16 more Apr 01, 2016 10:07:51 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: I/O exception (java.io.IOException) caught when processing request: Error flushing content in Google App Engine fetch Apr 01, 2016 10:07:51 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: Retrying request java.lang.reflect.InvocationTargetException     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:483)     at com.twilio.sdk.AppEngineClientConnection.flush(AppEngineClientConnection.java:197)     at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:258)     at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)     at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)     at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:410)     at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:581)     at com.twilio.sdk.resource.list.MessageList.create(MessageList.java:70)     at com.waze.beacon.inline.server.services.SmsSenderImp.main(SmsSenderImp.java:33) Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.     at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:111)     at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:38)     ... 16 more Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Error flushing content in Google App Engine fetch     at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:437)     at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:581)     at com.twilio.sdk.resource.list.MessageList.create(MessageList.java:70)     at com.waze.beacon.inline.server.services.SmsSenderImp.main(SmsSenderImp.java:33) Caused by: java.io.IOException: Error flushing content in Google App Engine fetch     at com.twilio.sdk.AppEngineClientConnection.flush(AppEngineClientConnection.java:201)     at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:258)     at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)     at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)     at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:410)     ... 3 more Disconnected from the target VM, address: '127.0.0.1:61151', transport: 'socket'  Process finished with exit code 1 

2 Answers

Answers 1

There's this question here that seems to be similar: getting strange exception trying to implement asynchronous http in google app engine for java

According to the accepted answer by @Antony, the issue is that these APIs are not available in the local dev server, but they will be when deployed in Google App Engine.

Answers 2

Megan from Twilio here.

I'm not very familiar with App Engine but your app is looking for a specific implementation of URLFetchService and cannot find it.

There are a few issues regarding the use of Twilio-Java with App Engine on GitHub that may be relevant.

Example of expected class:

Class.forName("com.google.appengine.api.urlfetch.HTTPRequest"); 

Let me know if this helps at all.

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment