如何在谷歌应用程序引擎中创建来自twilio helper liabrary的调用 [英] How to create call from twilio helper liabrary in google app engine

查看:90
本文介绍了如何在谷歌应用程序引擎中创建来自twilio helper liabrary的调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正尝试使用 Twilio Java助手库

创建Google应用引擎的出站呼叫, a>

示例:

  private void createcall(HttpServletRequest req, HttpServletResponse resp){

字符串ACCOUNT_SID =AC69000ff19655ca86c5a4ae027b886665;
String AUTH_TOKEN =bef9594c1e7f542b6e331bd7e50077d0;
尝试{

TwilioRestClient客户端=新的TwilioRestClient(ACCOUNT_SID,
AUTH_TOKEN);
Map< String,String> params = new HashMap< String,String>();
params.put(Url,http://demo.twilio.com/docs/voice.xml);
params.put(To,+919460952623);
params.put(From,+13072241210);

CallFactory factory = client.getAccount()。getCallFactory();
Call call = factory.create(params);
TwilioCapability功能=新的TwilioCapability(ACCOUNT_SID,AUTH_TOKEN);
capability.allowClientOutgoing(APf5250942ec073c9d08848990cbc0ff5e);
resp.getWriter()。write(capability.generateToken());
} catch(Exception e){
System.out.println(e.getLocalizedMessage());
e.printStackTrace();
log.warning(e.getLocalizedMessage());
}
// TODO自动生成的方法存根

$ b $ <$ $ c $>


$ b

这个例子产生以下错误:

  java.lang.NoSuchMethodError:sun.security.ssl.InputRecord.decrypt (Lsun / security / ssl / CipherBox;)在sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:871)上的V 
在sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java)上
:1169)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1196)
at sun.security.ssl.SSLSocketImpl.getSession(SSLSocketImpl.java:1920)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
at(org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:91)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
在org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
。在org.apache.http.impl.conn.Abs tractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
处org.apache.http.impl.client org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
。 DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
在org.apache.http.impl.client。 AbstractHttpClient.execute(AbstractHttpClient.java:754)
在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
在com.twilio.sdk.TwilioRestClient.request( TwilioRestClient.java:394)
at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:524)
at com.twilio.sdk.resource.list.CallList.create(CallList.java: (cleanifyServlet.java:111)
at cleanify.CleanifyServlet.doPost(CleanifyServlet.java:49)
at javax.servlet.http.HttpServlet.service (HttpServlet.java:637)
在javax.servlet.http.H ttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain。 doFilter(ServletHandler.java:1166)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain。 doFilter(ServletHandler.java:1157)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain。 doFilter(ServletHandler.java:1157)
位于com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:57)
位于org.mortbay.jetty.servlet.ServletHandler $ CachedChain。 doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler $ Ca chedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle( SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org .mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
在org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java:923)
在com.google.apphosting.runtime .jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpC onnection.handle(HttpConnection.java:404)
,位于com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
,位于com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run(JavaRuntime.java:439)
,位于com.google.tracing.TraceContext $ TraceContextRunnable.runInContext(TraceContext.java:483)
,位于com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run (TraceContext.java:490)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:777)
at com.google.tracing.TraceContext $ DoInTraceContext.runInContext(TraceContext.java:754 )
at com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:345)
at com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:337)
,位于com.google.tracing.TraceContext $ TraceContextRunnable.run(TraceContext.java:487)
,位于com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.ru n(ThreadGroupPool.java:251)
在java.lang.Thread.run(Thread.java:679)

2013-07-09 23:14:33.848
Uncaught来自servlet
的异常java.lang.NoSuchMethodError:sun.security.ssl.InputRecord.decrypt(Lsun / security / ssl / CipherBox;)V
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl。
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1169)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1196)
在sun.security.ssl.SSLSocketImpl.getSession(SSLSocketImpl.java:1920)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:91)
at org.apache .http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
在org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
在org.apache .http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAd apter.open(AbstractPooledConnAdapter.java:121)
在org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
在org.apache.http.impl.client。 DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
在org.apache.http.impl.client。 AbstractHttpClient.execute(AbstractHttpClient.java:754)
在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
在com.twilio.sdk.TwilioRestClient.request( TwilioRestClient.java:394)
at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:524)
at com.twilio.sdk.resource.list.CallList.create(CallList.java: (cleanifyServlet.java:111)
at cleanify.CleanifyServlet.doPost(CleanifyServlet.java:49)
at javax.servlet.http.HttpServlet.service (HttpServlet.java:637)
,位于javax.servlet.http.HttpServlet.servic e(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter( ServletHandler.java:1166)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter( ServletHandler.java:1157)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter( ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:57)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter( ServletHandler.java:1157)
在com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilte r(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler。
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay .jetty.HttpConnection.handleRequest(HttpConnection.java:542)
位于org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java:923)
位于com.google.apphosting.runtime.jetty .RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle( HttpConnection.java:404)
,位于com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
,位于com.google.apphosting.runtime.JavaRuntime $ RequestRunnable.run( JavaRuntime.java:439)
,位于com.google.tracing.TraceContext $ TraceContextRunnable.runInContext(TraceContext.java:483)
,位于com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run(TraceContext.java :490)
,位于com.google.tracing.TraceContext.runInContext(TraceContext.java:777)
位于com.google.tracing.TraceContext $ DoInTraceContext.runInContext(TraceContext.java:754)
在com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:345)
at com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:337)
at com。 google.tracing.TraceContext $ TraceContextRunnable.run(TraceContext.java:487)
at com.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run(ThreadGroupPool .java:251)
at java.lang.Thread.run(Thread.java:679)

我不知道问题所在,因为帐单也启用了。

请帮助我!

解决方案

显然,twilio lib在内部使用Apache HttpClient,它需要在GAE上进行调整: https://code.google.com/p/googleappengine/wiki/WillItPlayInJava#Apache



不确定是否您可以将自己的 ClientConnectionManager 注入到Twillio库中。



更新:



你可以实例化你自己的 HttpClinet进行调整,使其在GAE上工作,然后将它注入到twilio lib

  twilioRestClient.setHttpclient(gaeHttpClient); 


I am trying to create an Outbound call from google app engine using the Twilio Java helper library

Example:

private void createcall(HttpServletRequest req, HttpServletResponse resp) {

    String ACCOUNT_SID = "AC69000ff19655ca86c5a4ae027b886665";
    String AUTH_TOKEN = "bef9594c1e7f542b6e331bd7e50077d0";
    try {

        TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID,
                AUTH_TOKEN);
        Map<String, String> params = new HashMap<String, String>();
        params.put("Url", "http://demo.twilio.com/docs/voice.xml");
        params.put("To", "+919460952623");
        params.put("From", "+13072241210");

        CallFactory factory = client.getAccount().getCallFactory();
        Call call = factory.create(params);
        TwilioCapability capability = new TwilioCapability(ACCOUNT_SID,AUTH_TOKEN);
        capability.allowClientOutgoing("APf5250942ec073c9d08848990cbc0ff5e");
        resp.getWriter().write(capability.generateToken());
    } catch (Exception e) {
        System.out.println(e.getLocalizedMessage());
        e.printStackTrace();
        log.warning(e.getLocalizedMessage());
    }
    // TODO Auto-generated method stub

}

This example produces following error:

java.lang.NoSuchMethodError: sun.security.ssl.InputRecord.decrypt(Lsun/security/ssl/CipherBox;)V
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:871)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1169)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1196)
at sun.security.ssl.SSLSocketImpl.getSession(SSLSocketImpl.java:1920)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:91)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
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:394)
at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:524)
at com.twilio.sdk.resource.list.CallList.create(CallList.java:68)
at cleanify.CleanifyServlet.createcall(CleanifyServlet.java:111)
at cleanify.CleanifyServlet.doPost(CleanifyServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:57)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:439)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:483)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:490)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:777)
at com.google.tracing.TraceContext$DoInTraceContext.runInContext(TraceContext.java:754)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:345)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:337)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:487)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
at java.lang.Thread.run(Thread.java:679)

2013-07-09 23:14:33.848
Uncaught exception from servlet
java.lang.NoSuchMethodError: sun.security.ssl.InputRecord.decrypt(Lsun/security/ssl/CipherBox;)V
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:871)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1169)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1196)
at sun.security.ssl.SSLSocketImpl.getSession(SSLSocketImpl.java:1920)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:91)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
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:394)
at com.twilio.sdk.TwilioRestClient.safeRequest(TwilioRestClient.java:524)
at com.twilio.sdk.resource.list.CallList.create(CallList.java:68)
at cleanify.CleanifyServlet.createcall(CleanifyServlet.java:111)
at cleanify.CleanifyServlet.doPost(CleanifyServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:57)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:439)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:483)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:490)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:777)
at com.google.tracing.TraceContext$DoInTraceContext.runInContext(TraceContext.java:754)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:345)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:337)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:487)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
at java.lang.Thread.run(Thread.java:679)

I don't know what the problem is, as billing is also enabled. I am doing everything according the docs of google app engine Integration with twilio.

Please Help Me!!

解决方案

Apparently twilio lib internally uses Apache HttpClient which need to be tweaked to be used on GAE: https://code.google.com/p/googleappengine/wiki/WillItPlayInJava#Apache

Not sure if you will be able to inject your own ClientConnectionManager into Twillio lib though.

Update:

You can instantiate your own HttpClinet with tweaks to make it work on GAE and then inject it into twilio lib:

twilioRestClient.setHttpclient(gaeHttpClient);

这篇关于如何在谷歌应用程序引擎中创建来自twilio helper liabrary的调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆