Twitter4j谷歌应用程序引擎-java.lang.NoClassDefFoundError
我正在尝试使用Twitter4j库在Google App Engine上创建Java应用程序 当我创建普通(不适用于谷歌)应用程序时,我可以使用twitter4j,一切正常。我在项目->属性->Java构建路径->库->添加外部JAR中包含库。 我的代码:Twitter4j谷歌应用程序引擎-java.lang.NoClassDefFoundError,java,google-app-engine,twitter,noclassdeffounderror,twitter4j,Java,Google App Engine,Twitter,Noclassdeffounderror,Twitter4j,我正在尝试使用Twitter4j库在Google App Engine上创建Java应用程序 当我创建普通(不适用于谷歌)应用程序时,我可以使用twitter4j,一切正常。我在项目->属性->Java构建路径->库->添加外部JAR中包含库。 我的代码: Twitter4j的JAR应该放在WEB-INF/lib中。我不知道Twitter4j-GAE连接是否有问题或其他问题 现在我必须使用异步连接-代码: AsyncTwitterFactory factory = new AsyncTwitte
Twitter4j的JAR应该放在WEB-INF/lib中。我不知道Twitter4j-GAE连接是否有问题或其他问题 现在我必须使用异步连接-代码:
AsyncTwitterFactory factory = new AsyncTwitterFactory();
AsyncTwitter asyncTwitter = factory.getInstance();
asyncTwitter.setOAuthConsumer(consumer_key, consumer_secret);
asyncTwitter.setOAuthAccessToken(new AccessToken(oauth_token,oauth_token_secret));
asyncTwitter.addListener(listener);
//asyncTwitter.updateStatus("asd");
System.out.println(asyncTwitter.toString());
try{
asyncTwitter.getUserTimeline("medium");
}
catch(Exception e)
{
System.out.println(e.toString());
}
例外情况:
HTTP ERROR 500
Problem accessing /testapp Reason:
java.lang.reflect.InvocationTargetException
Caused by:
java.lang.AssertionError: java.lang.reflect.InvocationTargetException
at twitter4j.internal.async.DispatcherFactory.getInstance(DispatcherFactory.java:61)
at twitter4j.AsyncTwitterImpl.getDispatcher(AsyncTwitterImpl.java:3146)
at twitter4j.AsyncTwitterImpl.getUserTimeline(AsyncTwitterImpl.java:109)
at twitter4j.AsyncTwitterImpl.getUserTimeline(AsyncTwitterImpl.java:170)
...
...
Twitter4j异步直接调用GAE中的
新线程()
,这是不允许的
您需要修改DispatcherImpl
构造函数以使用GAE的ThreadManager
创建线程
请参考经过一些更改后,它可以正常工作!:)你的回答很有帮助。我必须重新启动ide,创建新项目,导入库。
AsyncTwitterFactory factory = new AsyncTwitterFactory();
AsyncTwitter asyncTwitter = factory.getInstance();
asyncTwitter.setOAuthConsumer(consumer_key, consumer_secret);
asyncTwitter.setOAuthAccessToken(new AccessToken(oauth_token,oauth_token_secret));
asyncTwitter.addListener(listener);
//asyncTwitter.updateStatus("asd");
System.out.println(asyncTwitter.toString());
try{
asyncTwitter.getUserTimeline("medium");
}
catch(Exception e)
{
System.out.println(e.toString());
}
HTTP ERROR 500
Problem accessing /testapp Reason:
java.lang.reflect.InvocationTargetException
Caused by:
java.lang.AssertionError: java.lang.reflect.InvocationTargetException
at twitter4j.internal.async.DispatcherFactory.getInstance(DispatcherFactory.java:61)
at twitter4j.AsyncTwitterImpl.getDispatcher(AsyncTwitterImpl.java:3146)
at twitter4j.AsyncTwitterImpl.getUserTimeline(AsyncTwitterImpl.java:109)
at twitter4j.AsyncTwitterImpl.getUserTimeline(AsyncTwitterImpl.java:170)
...
...