初始化新PlatformClient()时的异常

时间:2013-07-10 21:45:07

标签: intuit-partner-platform

我正在使用intuit提供的jar(ipp-java-devkit-2.0.11-jar-with-dependencies.jar)并且遇到了一些困难。我能够创建我的PlatformSessionContext,所以我知道它并没有完全被破坏。调用新的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)

有什么我错过的吗?

3 个答案:

答案 0 :(得分:1)

想出来。问题是slf4j日志记录罐是较新的版本,与我在服务器上运行的版本不兼容。发现了一个我之前没有注意到的(jBoss)部署错误:

16:27:26,172 ERROR [STDERR] SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定不兼容。
16:27:26,173 ERROR [STDERR] SLF4J:您的装订版本是1.5.5或更早版本。
16:27:26,173 ERROR [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然后为缺少的依赖项添加几个jar。 /> 我需要添加的罐子是:
org.apache.felix.bundlerepository-1.0.3.jar for xmlpull.v1.xmlpullparser,xmlpull.v1.xmlserializer,kdom.Document signpost-core-1.2.1.1.jar for OAuth stuff

答案 1 :(得分:0)

这对我来说很好。你能试试以下吗?

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

PlatformClient client = new PlatformClient();

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

JavaDoc参考 - 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();
    }
}

由于

答案 2 :(得分:0)

请检查您的menuproxy网址是否正确。这可能会造成这个问题。 参考: https://developer.intuit.com/docs/0025_quickbooksapi/0010_getting_started/0020_connect/0010_from_within_your_app/add_the_connect_button