0

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
4

1 に答える 1