我正在使用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)
有什么我错过的吗?
答案 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