2013-07-10 4 views
1

Я использую банку, предоставленную интуицией (ipp-java-devkit-2.0.11-jar-with-dependencies.jar) и с некоторым трудом. Я могу создать свой PlatformSessionContext, поэтому я знаю, что он не полностью сломан. При вызове нового PlatformClient() я получаю следующее исключение:Исключение при инициализации нового PlatformClient()

16:29:58,204 ERROR [[requestHandlerBlueDot]] Servlet.service() for servlet requestHandlerBlueDot threw exception java.lang.IllegalStateException: org.slf4j.LoggerFactory could not be successfully initialized. See also http://www.slf4j.org/codes.html#unsuccessfulInit 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:288) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252) 
    at com.intuit.platform.util.LoggerImpl.getLogger(LoggerImpl.java:48) 
    at com.intuit.platform.util.LoggerImpl.getInstance(LoggerImpl.java:32) 
    at com.intuit.platform.client.PlatformClient.<clinit>(PlatformClient.java:52) 
    at com.jt.quickbooks.BlueDotMenuServlet.doGet(BlueDotMenuServlet.java:66) 

Есть ли что-то, что я пропустил?

ответ

1

Вычислено. Проблема заключалась в том, что банки регистрации slf4j были более новыми версиями и несовместимы с тем, что у меня уже было на моем сервере. Обнаружена ошибка развертывания (jBoss), о которой я не заметил раньше:

16: 27: 26,172 ОШИБКА [STDERR] SLF4J: slf4j-api 1.6.x (или более поздняя версия) несовместима с этой привязкой.
16: 27: 26,173 ОШИБКА [STDERR] SLF4J: Ваша привязка - версия 1.5.5 или более ранняя.
16: 27: 26,173 ОШИБКА [STDERR] SLF4J: обновите свою привязку до версии 1.6.x. или 2.0.x

Исправление должно было удалить ipp-java-devkit-2.0.11-jar-with-dependencies.jar и заменить на ipp-java-devkit-2.0.11.jar, затем добавить пару банок для отсутствующие зависимости.
Баночки мне нужно добавить были:
org.apache.felix.bundlerepository-1.0.3.jar для xmlpull.v1.xmlpullparser, xmlpull.v1.xmlserializer, kdom.Document -указатель ядро-1.2.1.1. jar для материала OAuth

0

Это прекрасно работает для меня. Можете ли вы попробовать следующее.

final PlatformSessionContext context = getPlatformContext(accesstoken, 
     accessstokensecret, realmID, dataSource); 

PlatformClient client = new PlatformClient(); 

System.out.println("User's email " + client.getUserInfo(context).getEmail()); 

JavaDoc Ref - http://developer-static.intuit.com/SDKDocs/QBV2Doc/ipp-java-devkit-2.0.10-SNAPSHOT-javadoc/ (com.intuit.platform.client.PlatformClient)

Пожалуйста, дайте мне знать, если он работает для вас.

import com.intuit.platform.client.PlatformClient; 
import com.intuit.platform.client.PlatformServiceType; 
import com.intuit.platform.client.PlatformSessionContext; 
import com.intuit.platform.client.security.OAuthCredentials; 


public class Test { 

    String accesstoken = "keys ****"; 
    String accessstokensecret = "keys ****"; 
    String realmID = "*********"; 
    String dataSource = "QBD"; 

    String appToken = "keys ****"; 
    String oauth_consumer_key = "keys ****"; 
    String oauth_consumer_secret = "keys ****"; 

    Test(){ 
     final PlatformSessionContext context = getPlatformContext(accesstoken, 
       accessstokensecret, realmID, dataSource); 
     System.out.println(context); 
     PlatformClient client = new PlatformClient(); 
     System.out.println("User's email " + client.getUserInfo(context).getEmail()); 
    } 

    public PlatformSessionContext getPlatformContext(final String accessToken, 
      final String accessTokenSecret, final String realmID, 
      final String dataSource) { 

     PlatformServiceType serviceType; 
     if (dataSource.equalsIgnoreCase("QBO")) { 
      serviceType = PlatformServiceType.QBO; 
     } else { 
      serviceType = PlatformServiceType.QBD; 
     } 

     final OAuthCredentials oauthcredentials = new OAuthCredentials(
       oauth_consumer_key, oauth_consumer_secret, 
       accessToken, accessTokenSecret); 

     final PlatformSessionContext context = new PlatformSessionContext(
       oauthcredentials, appToken, serviceType, realmID); 

     return context; 
    } 

    public static void main(String args[]){ 
     Test test = new Test(); 
    } 
} 

Благодаря

+0

Добавление журнала не делало ничего. Как видно из вышеприведенной трассировки стека, код не пропускает «новый PlatformClient()». – andymal

+0

Можете ли вы поделиться этим фрагментом кода, в котором вы получаете это исключение. Я попытаюсь воссоздать это. –

+0

Да, у меня есть оба пути в моем классе, но оба действительно нужны? – andymal

0

Пожалуйста, проверьте, если ваш menuproxy URL правильно. Это может создать эту проблему. Код ссылки: https://developer.intuit.com/docs/0025_quickbooksapi/0010_getting_started/0020_connect/0010_from_within_your_app/add_the_connect_button

+0

Я считаю, что это правильно. menuproxy указывает на мой сервлет, который обрабатывает получение меню с голубыми точками. Это верно? – andymal

+0

Да. Это правильно. –

Смежные вопросы