gpt4 book ai didi

java - E*Trade OAuth API (Java) 存在问题

转载 作者:行者123 更新时间:2023-12-01 12:43:14 24 4
gpt4 key购买 nike

我正在尝试编写一个程序,该程序将使用 E*Trade API 在沙盒环境中交易股票。我使用他们的示例代码作为指导,目前遇到 .getAuthorizeURL() 方法的问题。它说它对于 String 类型是未定义的,但是,在反编译 OAuth jar 后,我对如何解决这个问题陷入了困境。

import com.etrade.etws.account.Account;
import com.etrade.etws.account.AccountListResponse;
import com.etrade.etws.oauth.sdk.client.IOAuthClient;
import com.etrade.etws.oauth.sdk.client.OAuthClientImpl;
import com.etrade.etws.oauth.sdk.common.Token;
import com.etrade.etws.sdk.client.ClientRequest;
import com.etrade.etws.sdk.client.Environment;
import com.etrade.etws.sdk.common.ETWSException;
import com.etrade.*;

import java.awt.Desktop;
import java.net.URI;
import java.*;
import java.io.IOException;

public class OAuth
{
public static void main(String[] args) throws IOException, ETWSException
{
//Variables
IOAuthClient client = null;
ClientRequest request = null;
Token token = null;
String oauth_consumer_key = null; // Your consumer key
String oauth_consumer_secret = null; // Your consumer secret
String oauth_request_token = null; // Request token
String oauth_request_token_secret = null; // Request token secret

client = OAuthClientImpl.getInstance(); // Instantiate IOAUthClient
request = new ClientRequest(); // Instantiate ClientRequest
request.setEnv(Environment.SANDBOX); // Use sandbox environment
request.setConsumerKey(oauth_consumer_key); //Set consumer key
request.setConsumerSecret(oauth_consumer_secret);
token = client.getRequestToken(request); // Get request-token object

oauth_request_token = token.getToken(); // Get token string
oauth_request_token_secret = token.getSecret(); // Get token secret
}

public String Verification(String client, ClientRequest request)
{
String authorizeURL = null;
authorizeURL = client.getAuthorizeUrl(request); // E*TRADE authorization URL
URI uri = new java.net.URI(authorizeURL);
Desktop desktop = Desktop.getDesktop();
desktop.browse(uri);

return authorizeURL;
}
}

堆栈跟踪

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at com.etrade.etws.oauth.sdk.client.OAuthClientImpl.<init>(OAuthClientImpl.java:22)
at com.etrade.etws.oauth.sdk.client.OAuthClientImpl.<clinit>(OAuthClientImpl.java:24)
at OAuth.main(OAuth.java:29)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more

最佳答案

您需要配置构建路径以将 Apache log4j 记录器 (org/apache/log4j/Logger) 包含在外部 JAR 中。它的用途隐藏在 ETRADE 代码中。

你用什么编辑代码?应该很容易找到适合您的开发环境的说明。 APACHE 是免费的,您可以在此处下载 JAR:http://logging.apache.org/log4j/2.x/

请注意 ETRADE ( https://us.etrade.com/ctnt/dev-portal/getContent?contentUri=V0_Code-Tutorialhttps://us.etrade.com/ctnt/dev-portal/getContent?contentUri=V0_Code-Tutorial ) 的要求:开发工具包要继续学习本教程,您必须首先完成 E*TRADE Java SDK 的安装,包括:

•已安装 Java 1.6 或更高版本

•已安装第 3 方 jar

•您的 CLASSPATH 中的 E*TRADE Java SDK 库

您可以在此处获取所有 jar 的说明 https://us.etrade.com/ctnt/dev-portal/getContent?contentUri=V0_Code-SDKGuides-Java

例如,如果您使用的是 Eclipse IDE,则可以按照以下说明操作 How to import a jar in Eclipse

关于java - E*Trade OAuth API (Java) 存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24893535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com