【问题标题】:"java.lang.UnsupportedOperationException: Not supported yet."“java.lang.UnsupportedOperationException:尚不支持。”
【发布时间】:2011-06-19 04:20:21
【问题描述】:

我想做什么:

我正在尝试使用 Java 连接到 Web Portal [使用 https]。 我已经编写了使用 Authenticator 类提供用户凭据的代码。当我运行程序时,我得到一个异常:

“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:尚不支持”。我的方法是否正确?如果没有,还有其他选择吗?

当我在网络浏览器中打开页面时,我会看到登录页面;一旦我提供了我的凭据,就会显示网络门户

谁能建议如何访问门户网站并提供我的凭据并检查身份验证是否成功? 任何示例代码 sn-ps 都会非常有帮助 提前谢谢..

【问题讨论】:

标签: java ssl


【解决方案1】:

你没有给你的方法一个实体。检查你有问题的那一行,并用你想要的代码覆盖你的方法。

【讨论】:

    【解决方案2】:

    当您没有为您已实现的接口中的所有方法提供实现时,就会发生这种情况。检查您未实施的方法。

    【讨论】:

      【解决方案3】:

      您可能使用过诸如 Netbeans 之类的 IDE 来实现接口/覆盖需要实现某些方法的抽象类。当 IDE 这样做时(Netbeans 肯定会这样做),它们会像这样为您生成方法存根,因此代码仍然可以编译,但如果您尝试调用尚未实际实现的方法,则会出现不可避免的错误。

      通常这意味着您必须实现给定的方法,但有时实现确实需要一个空白方法存根,在这种情况下只需删除引发异常的行。

      【讨论】:

      • 是的,我使用 Netbeans 编写代码,netbeans 给了我生成存根的建议 感谢您的提示!
      【解决方案4】:

      如果你不想实现这个方法:

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

      放心,只删除这行方法:

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

      【讨论】:

      • 删除该行将导致编译时错误。您至少需要添加一个return null;
      • ya!~ 在编写 onReceiver() 时由 Android Studio 自动生成。
      【解决方案5】:

      你见过这段代码吗?

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

      这正是每次您尝试进行身份验证时都会抛出上述异常的那个。

      因此,在我看来,您的身份验证问题的解决方案非常简单:实现此方法。

      【讨论】:

      • 哎呀!!这是由 Netbeans 生成的!我没有注意到这一点!我会实施这个并尝试非常感谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多