"java.lang.UnsupportedOperationException: пока не поддерживается." - PullRequest
3 голосов
/ 01 февраля 2011

Что я пытаюсь сделать:

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

У меня есть код:

</p> <pre> 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: пока не поддерживается" возникает во 2-й попытке. Правильный ли мой подход? если нет, то есть ли альтернатива для этого?

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

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

Ответы [ 4 ]

8 голосов
/ 01 февраля 2011

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

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

Полегче, удалите только эту строку метода:

throw new UnsupportedOperationException("Not supported yet.");
7 голосов
/ 01 февраля 2011

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

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

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

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

2 голосов
/ 01 февраля 2011

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

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

0 голосов
/ 23 декабря 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...