有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ssl证书如何解决javax。网ssl。SSLPeerUnverifiedException:使用java的Rally Rest api中的对等未验证异常?

这是我的密码。 我想使用QueryResponse从Rally Api获取数据。但它展示了javax。网ssl。SSLPeerUnverifiedException:对等未验证异常对等未验证。我想用这个 测试Rally的webservice api的java工具包。我们有一个拉力赛的内部设置。我的代码如下所示:

    public static void main(String[] args) throws URISyntaxException 
    {
        String projectRef = "/project/123";
        RallyRestApi restpoint = new RallyRestApi(new URI("http://rally1.rallydev.com"), "_api key");   


        // i have added following section because which is given as a solution for above exception. but then also it is giving me javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated exception
        HttpClient client = restpoint.getClient();         
        try 
        {             
            SSLSocketFactory sf = new SSLSocketFactory(new TrustStrategy() {                 
                public boolean isTrusted(X509Certificate[] certificate, String authType) throws CertificateException 
                {                     //trust all certs                     
                    return true;                 
                    }}, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);             
            client.getConnectionManager().getSchemeRegistry().register(new Scheme("https", 443, sf));  

        }catch (Exception e) 
        {             
            System.out.println(e);        

        }
        try {
            String version = restpoint.getWsapiVersion();
            System.out.println("version : " + version);
            QueryRequest defects = new QueryRequest("hierarchicalrequirement");

            defects.setFetch(new Fetch("FormattedID","Owner", "Name", "State", "Iteration", "Project", "Defect", "ScheduleState", "PlanEstimate"));
            defects.setOrder("FormattedID ASC"); 
            defects.setProject(projectRef);
            defects.setQueryFilter(
                    new QueryFilter("Iteration.StartDate", ">=", "2017-10-01"));
            //Return up to 5, 1 per page
            defects.setPageSize(1);
            defects.setLimit(10);

            QueryResponse queryResponse = restpoint.query(defects); //here i am getting above exception

 //following code is printing the JSON data
            if (queryResponse.wasSuccessful()) {
                System.out.println(String.format("\nTotal results: %d", queryResponse.getTotalResultCount()));

                for (JsonElement result : queryResponse.getResults()) {
                    JsonObject defect = result.getAsJsonObject();
                    JsonObject project = defect.getAsJsonObject("Project");
                    JsonObject itr = defect.getAsJsonObject("Iteration");
                    JsonObject def = defect.getAsJsonObject("Defect");
                    //System.out.println(defect.toString());
                    System.out.println(String.format("User Story ID: %-10s \nName Of Story: %-30s: \nOwner: %-10s \nProject: %-15s \nStatus: %s",
                            defect.get("FormattedID").getAsString(),
                            defect.get("Name").getAsString(),
                            defect.get("Owner").getAsJsonObject().getAsJsonObject().get("_refObjectName"),
                            project.get("Name").getAsString(),
                            defect.get("ScheduleState").getAsString()
                            ));
                    System.out.println();System.out.println();



                }
            } else {
                System.err.println("The following errors occurred: ");
                for (String err : queryResponse.getErrors()) {
                    System.err.println("\t" + err);
                }
            }

        } catch (IOException e) {

            e.printStackTrace();
        } finally {
            try {
                restpoint.close();  //closing rally Api
            } catch (IOException e) {
                e.printStackTrace();
            }
        }   




        }

共 (1) 个答案