2011-02-01 3 views
3

Что я пытаюсь сделать:"java.lang.UnsupportedOperationException: пока не поддерживается."

Я пытаюсь подключиться к веб-порталу, [который использует https], используя Java. Я написал код для подачи учетных данных пользователя с помощью Authenticator class.When запуска программы я получаю исключение: «java.lang.UnsupportedOperationException: Пока не поддерживается»

Я отправил код:

 

public class Main { 

    public class MyAuthenticator extends Authenticator { 

     protected PasswordAuthentication getpasswordAuthentication() { 
      String username = "username"; 
      String password = "password"; 
      // Return the information 
      return new PasswordAuthentication(username, password.toCharArray()); 
     } 

     @Override 
     public Result authenticate(HttpExchange he) { 
      throw new UnsupportedOperationException("Not supported yet."); 
     } 
    } 

    public static void main(String[] args) { 
     // TODO code application logic here 


     TrustManager[] trustClients = new TrustManager[]{ 
      new X509TrustManager() { 

       public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException { 
        throw new UnsupportedOperationException("Not supported yet."); 
       } 

       public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException { 

        throw new UnsupportedOperationException("Not supported yet."); 
       } 

       public X509Certificate[] getAcceptedIssuers() { 
        return null; 
        //throw new UnsupportedOperationException("Not supported yet."); 
       } 
      } 
     }; 
     try { 
      SSLContext sslcontext = SSLContext.getInstance("SSL"); 
      sslcontext.init(null, trustClients, new java.security.SecureRandom()); 
      HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory()); 

     } catch (Exception e) { 
      System.out.println("in 1st catch " + e); 
     } 


     try { 
      URL url = new URL("https://someURL.server.com/fmk/jsp/ltpaLogin.jsp"); 
      URLConnection urlconnection = url.openConnection(); 
      System.out.println(urlconnection); 
      System.out.print(urlconnection.getInputStream().toString()); 

     } catch (Exception e) { 
      System.out.println("in 2ndcatch " + e.getMessage()); 
     } 
    } 
} 

 

исключение «java.lang.UnsupportedOperationException: не поддерживается» поднят во втором Try.Is мой подход правильный? если нет, есть ли альтернатива?

При открытии страницы в веб-браузере, я получаю страницу входа в систему; После того, как я поставляю свои учетные данные веб-портал отображается

Может ли один предложить, пожалуйста, как попасть в WebPortal и предоставить свои учетные данные и проверить подлинности успех или нет? Любые примеры фрагментов кода будут действительно полезны Заранее спасибо ..

ответ

6

Вы видели этот фрагмент кода?

@Override 
    public Result authenticate(HttpExchange he) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 

Это именно тот, который будет вызывать вышеупомянутое исключение при каждом попытке аутентификации.

Итак, на мой взгляд, решение проблемы аутентификации довольно просто: реализуйте этот метод.

+0

OOppss !! Это было создано Netbeans! Я это замечаю! Я реализую это и попробую Спасибо большое. – ManiVI

7

, если вы не хотите реализовать этот метод:

@Override 
    public Result authenticate(HttpExchange he) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 

успокойтесь, только удалить эту строку метода:

throw new UnsupportedOperationException("Not supported yet."); 
+0

Да, я попробую! – ManiVI

+1

Удаление строки приведет к ошибкам во время компиляции. Вам нужно хотя бы добавить «return null;». –

+0

ya! ~ Авто, созданный Android Studio при записи onReceiver(). –

2

Вы, вероятно, использовали IDE, такие как Netbeans к реализовать интерфейс/переопределить абстрактный класс, который требует определенных методов реализации. Когда IDE делают это (Netbeans определенно делает), они генерируют заглушки для этого типа, поэтому код все еще компилируется, но если вы попытаетесь вызвать метод, который вы на самом деле не реализовали, вы получите неизбежную ошибку.

Обычно это означает, что вы должны реализовать данный метод, но иногда реализация действительно призывает к пустой заглушке метода, и в этом случае просто удалите строку, которая бросает исключение.

+0

Да Я использовал Netbeans для написания кода, и netbeans дал мне предложения для создания Stubs Спасибо за подсказку !! – ManiVI

0

Это происходит, когда вы не предоставляли реализации для всех методов из интерфейса, который вы реализовали. Проверьте, какой метод вы не реализовали.

Смежные вопросы