Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Twitter4j谷歌应用程序引擎-java.lang.NoClassDefFoundError_Java_Google App Engine_Twitter_Noclassdeffounderror_Twitter4j - Fatal编程技术网

Twitter4j谷歌应用程序引擎-java.lang.NoClassDefFoundError

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库在Google App Engine上创建Java应用程序

当我创建普通(不适用于谷歌)应用程序时,我可以使用twitter4j,一切正常。我在项目->属性->Java构建路径->库->添加外部JAR中包含库。 我的代码:


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)
...
...