При доступе к WSO2 DAS с помощью REST api с помощью Jersey client im получает ответ как неподдерживаемый тип носителя

При доступе к WSO2 DAS с помощью REST api с использованием jersey java rest client im получает ответ как неподдерживаемый тип носителя со статусом ответа 415 с ответом

InboundJaxrsResponse{context=ClientResponse{method=POST, uri= https://localhost:9443/analytics/search , status=415, reason=неподдерживаемый тип носителя}}

источник клиента ниже. Может кто-нибудь помочь в этом вопросе.


package com.rilfi.research.c2c.das.rest.client;

import org.glassfish.jersey.SslConfigurator;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
import javax.net.ssl.SSLContext;`enter code here`
import javax.ws.rs.client.*;
import javax.ws.rs.core.*;

public class DasClientApp {
    public static void main(String[] args) {
        SslConfigurator sslConfig = SslConfigurator.newInstance()
                .trustStoreFile("./client-truststore.jks")
                .trustStorePassword("wso2carbon")
                .keyStoreFile("wso2carbon.jks")
                .keyPassword("wso2carbon");
        SSLContext sslContext = sslConfig.createSSLContext();
        Client client = ClientBuilder.newBuilder().sslContext(sslContext).build();
        WebTarget webTarget = client.target("https://localhost:9443").path("analytics/search");
        MultivaluedMap<String, String> formData = new MultivaluedHashMap<String, String>();
        formData.add("tableName", "V1SALEFULL3");
        formData.add("query", "product:phone");
        formData.add("start", "0");
        formData.add("count", "10");
        Response response = webTarget.request(MediaType.APPLICATION_JSON).post(Entity.form(formData));
        System.out.println(response.getStatus());
        System.out.println(response.readEntity(String.class));
        System.out.println(response);
    }

}

1 ответ

  1. После добавления функции HttpAuthenticationFeature = HttpAuthenticationFeature.basic («admin», «admin»); теперь я могу получить доступ к WSO2 DAS с помощью REST api

    пакет com.rilfi.исследование.c2c.das.остальное.клиент;

    import org.glassfish.jersey.SslConfigurator;
    import org.glassfish.jersey.client.ClientConfig;
    import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
    
    import javax.net.ssl.SSLContext;
    import javax.ws.rs.client.*;
    import javax.ws.rs.core.*;
    
    /**
     * Created by rilfi on 5/5/16.
     */
    public class DasClientApp {
        public static void main(String[] args) {
            SslConfigurator sslConfig = SslConfigurator.newInstance()
                    .trustStoreFile("client-truststore.jks")
                    .trustStorePassword("wso2carbon")
                    .keyStoreFile("wso2carbon.jks")
                    .keyPassword("wso2carbon");
            SSLContext sslContext = sslConfig.createSSLContext();
            HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("admin", "admin");
            Client client = ClientBuilder.newBuilder().sslContext(sslContext).build();
            WebTarget webTarget = client.target("https://localhost:9443").path("analytics/search").register(feature);
            String payload = "{\"tableName\":\"V1SALEFULL3\",\"query\":\"product:phone\",\"start\":50,\"count\":10}";
            Response response = webTarget.request(MediaType.APPLICATION_JSON_TYPE).post(Entity.json(payload));
            System.out.println(response.getStatus());
            System.out.println(response.readEntity(String.class));
            System.out.println(response);
        }
    
    }