Playframework 2.0 从PlayFramework2.0Java调用Twillio API时出现的奇怪问题
我正在尝试使用TwilioJavaAPI进行调用。下面是代码Playframework 2.0 从PlayFramework2.0Java调用Twillio API时出现的奇怪问题,playframework-2.0,playframework-2.1,twilio,Playframework 2.0,Playframework 2.1,Twilio,我正在尝试使用TwilioJavaAPI进行调用。下面是代码 public static Result call() { Logger.debug("calling the requested number"); Form<User> form = userForm.bindFromRequest(); User user = form.get(); Logger.debug("Information submitt
public static Result call() {
Logger.debug("calling the requested number");
Form<User> form = userForm.bindFromRequest();
User user = form.get();
Logger.debug("Information submitted " + user.toString());
/* Instantiate a new Twilio Rest Client */
TwilioRestClient client = new TwilioRestClient(ACCOUNTSID, AUTHTOKEN);
// Get the account and call factory class
Account acct = client.getAccount();
CallFactory callFactory = acct.getCallFactory();
//build map of post parameters
Map<String,String> params = new HashMap<String,String>();
url = url + user.getCalleeNumber();
Logger.debug("url is " + url);
params.put("From", "+18054094292");
params.put("To", user.getCallerNumber());
params.put("Url", url);
try {
// Make a phone call ( This makes a POST request to the Calls resource)
callFactory.create(params);
} catch (TwilioRestException e) {
e.printStackTrace();
}
return ok("");
}
公共静态结果调用(){
debug(“调用请求的号码”);
Form Form=userForm.bindFromRequest();
User=form.get();
Logger.debug(“提交的信息”+user.toString());
/*实例化一个新的Twilio Rest客户端*/
TwilioRestClient=新的TwilioRestClient(ACCOUNTSID,AUTHTOKEN);
//获取帐户并调用工厂类
Account acct=client.getAccount();
CallFactory CallFactory=acct.getCallFactory();
//构建post参数图
Map params=新的HashMap();
url=url+user.getCalleeNumber();
调试(“url为”+url);
参数put(“从”、“+18054094292”);
参数put(“To”,user.getCallerNumber());
参数put(“Url”,Url);
试一试{
//拨打电话(向呼叫资源发出POST请求)
callFactory.create(参数);
}捕捉(斜纹例外e){
e、 printStackTrace();
}
返回ok(“”);
}
因此,如果我使用play“run 8081”或play“start 8081”在dev或prod模式下运行它,代码就会工作。但是当我准备应用程序并通过nohup运行它时,我得到了以下错误。猜猜为什么会这样。堆栈跟踪在下面
play.api.Application$$anon$1: Execution exception[[RuntimeException: java.lang.NoSuchMethodError: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: method <init>()V not found]]
at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.0]
at play.api.DefaultApplication.handleError(Application.scala:383) [play_2.10.jar:2.1.0]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:132) [play_2.10.jar:2.1.0]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:128) [play_2.10.jar:2.1.0]
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0]
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0]
java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: method <init>()V not found
at play.libs.F$Promise$6.apply(F.java:401) ~[play_2.10.jar:2.1.0]
at scala.concurrent.Future$$anonfun$map$1.liftedTree2$1(Future.scala:253) ~[scala-library.jar:na]
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:249) ~[scala-library.jar:na]
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:249) ~[scala-library.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:29) ~[scala-library.jar:na]
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.liftedTree1$1(BatchingExecutor.scala:67) ~[akka-actor_2.10.jar:na]
Caused by: java.lang.NoSuchMethodError: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: method <init>()V not found
at com.twilio.sdk.TwilioRestClient.<init>(TwilioRestClient.java:139) ~[twilio-java-sdk-3.3.14-jar-with-dependencies.jar:na]
at com.twilio.sdk.TwilioRestClient.<init>(TwilioRestClient.java:110) ~[twilio-java-sdk-3.3.14-jar-with-dependencies.jar:na]
at controllers.Application.call(Application.java:42) ~[twilio-test-1_2.10-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$2$$anonfun$apply$2.apply(routes_routing.scala:69) ~[twilio-test-1_2.10-1.0-SNAPSHOT.jar:na]
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$2$$anonfun$apply$2.apply(routes_routing.scala:69) ~[twilio-test-1_2.10-1.0-SNAPSHOT.jar:na]
at play.core.Router$HandlerInvoker$$anon$6$$anon$2.invocation(Router.scala:141) ~[play_2.10.jar:2.1.0]
play.api.Application$$anon$1:执行异常[[RuntimeException:java.lang.NoSuchMethodError:org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager:method()未找到]]
在play.api.Application$class.handleError(Application.scala:289)~[play_2.10.jar:2.1.0]
在play.api.DefaultApplication.handleError(Application.scala:383)[play_2.10.jar:2.1.0]
在play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:132)[play_2.10.jar:2.1.0]
在play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:128)[play_2.10.jar:2.1.0]
在play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113)[play_2.10.jar:2.1.0]
在play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113)[play_2.10.jar:2.1.0]
java.lang.RuntimeException:java.lang.NoSuchMethodError:org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager:method()未找到
在play.libs.F$Promise$6.apply(F.java:401)~[play_2.10.jar:2.1.0]
在scala.concurrent.Future$$anonfun$map$1.liftedTree2$1(Future.scala:253)~[scala library.jar:na]
在scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:249)~[scala library.jar:na]
在scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:249)~[scala library.jar:na]
在scala.concurrent.impl.CallbackRunnable.run(Promise.scala:29)~[scala library.jar:na]
在akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.liftedTree1$1(BatchingExecutor.scala:67)~[akka-actor_2.10.jar:na]
原因:java.lang.NoSuchMethodError:org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager:未找到方法()V
在com.twilio.sdk.TwilioRestClient.(TwilioRestClient.java:139)~[twilio-java-sdk-3.3.14-jar-with-dependencies.jar:na]
在com.twilio.sdk.TwilioRestClient.(TwilioRestClient.java:110)~[twilio-java-sdk-3.3.14-jar-with-dependencies.jar:na]
在controllers.Application.call(Application.java:42)~[twilio-test-1_2.10-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
在路由$$anonfun$Routes$1$$anonfun$applyOrElse$2$$anonfun$apply$2.apply(Routes\u routing.scala:69)~[twilio-test-1\u 2.10-1.0-SNAPSHOT.jar:na]
在路由$$anonfun$Routes$1$$anonfun$applyOrElse$2$$anonfun$apply$2.apply(Routes\u routing.scala:69)~[twilio-test-1\u 2.10-1.0-SNAPSHOT.jar:na]
在play.core.Router$HandlerInvoker$$anon$6$$anon$2.invocation(Router.scala:141)~[play_2.10.jar:2.1.0]
来自评论:
这里的瑞奇。万一有人被困在这里,我们会 一篇关于如何开始正确配置依赖项的博客文章已经发布 对我来说也有点棘手
您需要开始使用。类路径中可能有两个不同版本的
httpclient
lib。您可以使用Play console中的dependencies
goal检查它,并查找重复项。谢谢,这可能就是问题所在。我在播放应用程序sbt构建文件中添加了这个库,现在它似乎可以工作了,谢谢…这里是Twilio的Ricky。万一有人被困在这里,我们会在上面写一篇博文。提前正确配置依赖项对我来说也有点棘手。