Проблема OAuth API E*Trade

У меня проблема с методом OAuthClientImpl.getInstance(), который находится в строке 26. Он выдает это сообщение об ошибке:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at OAuth.main(OAuth.java:26)
Caused by: java.lang.ClassCastException: org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext
    at org.apache.log4j.Logger.getLogger(Logger.java:41)
    at com.etrade.etws.oauth.sdk.client.OAuthClientImpl.<init>(OAuthClientImpl.java:22)
    at com.etrade.etws.oauth.sdk.client.OAuthClientImpl.<clinit>(OAuthClientImpl.java:24)
    ... 1 more

Мне кажется, что проблема связана с проблемой связи между log4j и банкой OAuth E*Trade, хотя с моим ограниченным опытом работы с Java/кодированием в целом я понятия не имею, как решить эту проблему, так как я не мог найти много полезной информации в гугле. Я декомпилировал банку E*Trade и log4j и нашел этот код:

Электронная торговля:

public class OAuthClientImpl
  implements IOAuthClient
{
  private Logger logger = Logger.getLogger(getClass());

  private static OAuthClientImpl instance = new OAuthClientImpl();

  public static OAuthClientImpl getInstance()
  {
    return instance;
  }

Лог4дж:

 public static Logger getLogger(final Class<?> clazz) {
        return (Logger) Category.getInstance((LoggerContext) PrivateManager.getContext(), clazz);
    }

Ниже приведен мой код, это пример кода E*Trade API с небольшими изменениями.

import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import com.etrade.etws.account.Account;
import com.etrade.etws.account.AccountListResponse;
import com.etrade.etws.account.ETWSException;
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;

public class OAuth
{
    public static void main(String[] args) throws IOException, URISyntaxException, com.etrade.etws.sdk.common.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 void OAuthVerify(IOAuthClient client, ClientRequest request) throws IOException, URISyntaxException, com.etrade.etws.sdk.common.ETWSException
    {
        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);    
    }
}

person Frodgers    schedule 26.07.2014    source источник
comment
у вас есть банки slf4j в пути к классам?   -  person AndresQ    schedule 28.08.2014
comment
Да, у меня есть банки slf4j в пути к классам.   -  person Frodgers    schedule 03.10.2014
comment
я знаю, что это старый пост, но решил добавить следующий комментарий: следующий пост stackoverflow звучит похоже.... stackoverflow.com/questions/24893535/   -  person tatmanblue    schedule 16.11.2016