Ошибка при использовании WS без SSL

Я пытаюсь использовать сервис, который не нуждается в сертификате. Он получает только имя пользователя и пароль в качестве свойства запроса. Я использую плагин maven-jaxb2-plugin для генерации кода. Я попытался скопировать, используя следующие команды:

mvn generate-sources -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

а также

mvn generate-sources

Но я получил следующую ошибку:

org.springframework.ws.client.WebServiceIOException: I/O error: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Это мой метод настройки:

   @Bean
    Jaxb2Marshaller jaxb2Marshaller() {
        Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
jaxb2Marshaller.setPackagesToScan("ce.gov.s2gpr.compras.licita.business.model.service.bean");
        return jaxb2Marshaller;
    }


@Bean
public WebServiceTemplate webServiceTemplate() {
    WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
    webServiceTemplate.setMarshaller(jaxb2Marshaller());
    webServiceTemplate.setUnmarshaller(jaxb2Marshaller());
    webServiceTemplate.setDefaultUri(defaultUri);
    webServiceTemplate.setMessageSender(webServiceMessageSender());

    return webServiceTemplate;
}

@Bean
public WebServiceMessageSender webServiceMessageSender() {
    HttpComponentsMessageSender httpComponentsMessageSender = new HttpComponentsMessageSender();
    // timeout for creating a connection
    httpComponentsMessageSender.setConnectionTimeout(timeout);
    // when you have a connection, timeout the read blocks for
    httpComponentsMessageSender.setReadTimeout(timeout);
    httpComponentsMessageSender.setCredentials(new UsernamePasswordCredentials(userName, userPassword));
    return httpComponentsMessageSender;
}

Это мой метод, который использует сервис:

@SuppressWarnings("unchecked")
    public AtualizacaoItensGruposResponse testeSoap(PgeTO dto) {

        ObjectFactory factory = new ObjectFactory();

        AtualizacaoItensGrupos itens = factory.createAtualizacaoItensGrupos();

        itens.setArg0(dto);
        JAXBElement<AtualizacaoItensGrupos> request =  factory.createAtualizacaoItensGrupos(itens);

        try {
//            webServiceTemplate.marshalSendAndReceive(request);
                    webServiceTemplate.marshalSendAndReceive(itens);
            return null;
        } catch (Exception e) {
            log.error(e.getMessage());

        }

    }

0 ответов

Другие вопросы по тегам