КЛИЕНТ JAXWS ВСЕГДА ОТПРАВЛЯЕТ HTTP НЕ HTTPS - PullRequest
0 голосов
/ 13 февраля 2020

Привет! Я использую jaxws для генерации wsdl в своем проекте java. Я использую java 11 и jaxws-maven-plugin для импорта mywsdl Myproblem, в моем wsdl есть блок http://myservice. И я хочу использовать https://myservice в качестве URL. Я генерирую и импортирую wsdl. И при этом всегда стараюсь достичь http-адреса, а не https.Как я могу заставить своего веб-клиента использовать http-адрес.

/**
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.3.2
 * Generated source version: 2.2
 * 
 */
@WebServiceClient(name =

  MyResponse response=reply.getMyService().MyRequest(request);


   <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jaxws-maven-plugin</artifactId>
                    <version>2.6</version>

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Вы пробовали старые добрые ограничения безопасности в сети. xml?

   <security-constraint>
        <display-name>SecurityConstraint</display-name>
        <web-resource-collection>
            <web-resource-name>Secure Area</web-resource-name>
            <url-pattern>/your-webservice-url</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
0 голосов
/ 14 февраля 2020

BindingProvider является решением.

  QName qname2 = new QName("http://myschema", "MYserviceImpl");
                Service service = MYserviceImpl.create(new URL("https://mysiteRequest"), qname2);
                MYservice reply=   service.getPort(MYservice.class);
                BindingProvider bindingProvider = (BindingProvider)reply;
                bindingProvider.getRequestContext().put(
                        BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
                        "https://mysite");

                MyResponse response=  reply.myRequest(request2);
...