Как прикрепить apache-httpclient-4.x к заглушке axis2 - PullRequest
0 голосов
/ 02 мая 2019

У меня проблема с моим клиентским приложением axis2 (непрофессиональное).Я использовал axis2, потому что сгенерированный клиент работал из коробки.Клиенты CXF или метро выдают много предупреждений из-за политик.Сервер веб-сервиса генерируется инструментом SAP (oslt).В течение короткого времени происходит ошибка, когда приложение вызывает мыльный веб-сервис из тестовой среды моей компании (вызов производительного веб-сервиса все еще работает).Это время ожидания:

--- exec-maven-plugin:1.2.1:exec (default-cli) @ PVA ---
2019/05/02 10:04:31:263 MESZ [DEBUG] DefaultHttpParams - Set parameter http.useragent = Jakarta Commons-HttpClient/3.1
2019/05/02 10:04:31:288 MESZ [DEBUG] DefaultHttpParams - Set parameter http.protocol.version = HTTP/1.1
2019/05/02 10:04:31:290 MESZ [DEBUG] DefaultHttpParams - Set parameter http.connection-manager.class = class org.apache.commons.httpclient.SimpleHttpConnectionManager
2019/05/02 10:04:31:291 MESZ [DEBUG] DefaultHttpParams - Set parameter http.protocol.cookie-policy = default
2019/05/02 10:04:31:291 MESZ [DEBUG] DefaultHttpParams - Set parameter http.protocol.element-charset = US-ASCII
2019/05/02 10:04:31:291 MESZ [DEBUG] DefaultHttpParams - Set parameter http.protocol.content-charset = ISO-8859-1
2019/05/02 10:04:31:295 MESZ [DEBUG] DefaultHttpParams - Set parameter http.method.retry-handler = org.apache.commons.httpclient.DefaultHttpMethodRetryHandler@38cf3915
2019/05/02 10:04:31:295 MESZ [DEBUG] DefaultHttpParams - Set parameter http.dateparser.patterns = [EEE, dd MMM yyyy HH:mm:ss zzz, EEEE, dd-MMM-yy HH:mm:ss zzz, EEE MMM d HH:mm:ss yyyy, EEE, dd-MMM-yyyy HH:mm:ss z, EEE, dd-MMM-yyyy HH-mm-ss z, EEE, dd MMM yy HH:mm:ss z, EEE dd-MMM-yyyy HH:mm:ss z, EEE dd MMM yyyy HH:mm:ss z, EEE dd-MMM-yyyy HH-mm-ss z, EEE dd-MMM-yy HH:mm:ss z, EEE dd MMM yy HH:mm:ss z, EEE,dd-MMM-yy HH:mm:ss z, EEE,dd-MMM-yyyy HH:mm:ss z, EEE, dd-MM-yyyy HH:mm:ss z]
2019/05/02 10:04:31:299 MESZ [DEBUG] DefaultHttpParams - Set parameter http.connection.timeout = 60000
2019/05/02 10:04:31:299 MESZ [DEBUG] DefaultHttpParams - Set parameter http.socket.timeout = 60000
2019/05/02 10:04:31:303 MESZ [DEBUG] DefaultHttpParams - Set parameter http.connection-manager.max-per-host = {HostConfiguration[]=20}
2019/05/02 10:04:31:303 MESZ [DEBUG] DefaultHttpParams - Set parameter http.connection-manager.max-total = 20
2019/05/02 10:04:31:304 MESZ [DEBUG] HttpClient - Java version: 1.8.0_202
2019/05/02 10:04:31:304 MESZ [DEBUG] HttpClient - Java vendor: Azul Systems, Inc.
2019/05/02 10:04:31:305 MESZ [DEBUG] HttpClient - Java class path: C:\Users\A329865\OneDrive - Deutsche Telekom AG\Workspace\PVA\target\classes;C:\Users\A329865\.m2\repository\org\apache\logging\log4j\log4j-api\2.8.2\log4j-api-2.8.2.jar;C:\Users\A329865\.m2\repository\org\apache\logging\log4j\log4j-core\2.8.2\log4j-core-2.8.2.jar;C:\Users\A329865\.m2\repository\org\apache\poi\poi\3.17\poi-3.17.jar;C:\Users\A329865\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\A329865\.m2\repository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar;C:\Users\A329865\.m2\repository\org\apache\poi\poi-ooxml\3.17\poi-ooxml-3.17.jar;C:\Users\A329865\.m2\repository\com\github\virtuald\curvesapi\1.04\curvesapi-1.04.jar;C:\Users\A329865\.m2\repository\org\apache\poi\poi-ooxml-schemas\3.17\poi-ooxml-schemas-3.17.jar;C:\Users\A329865\.m2\repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;C:\Users\A329865\.m2\repository\org\apache\poi\poi-scratchpad\3.17\poi-scratchpad-3.17.jar;C:\Users\A329865\.m2\repository\org\apache\commons\commons-compress\1.15\commons-compress-1.15.jar;C:\Users\A329865\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;C:\Users\A329865\.m2\repository\org\apache\commons\commons-configuration2\2.2\commons-configuration2-2.2.jar;C:\Users\A329865\.m2\repository\org\apache\commons\commons-lang3\3.6\commons-lang3-3.6.jar;C:\Users\A329865\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\A329865\.m2\repository\org\apache\axis2\axis2-adb\1.7.7\axis2-adb-1.7.7.jar;C:\Users\A329865\.m2\repository\org\apache\axis2\axis2-kernel\1.7.7\axis2-kernel-1.7.7.jar;C:\Users\A329865\.m2\repository\org\apache\ws\commons\axiom\axiom-api\1.2.20\axiom-api-1.2.20.jar;C:\Users\A329865\.m2\repository\org\apache\james\apache-mime4j-core\0.7.2\apache-mime4j-core-0.7.2.jar;C:\Users\A329865\.m2\repository\org\apache\ws\commons\axiom\axiom-impl\1.2.20\axiom-impl-1.2.20.jar;C:\Users\A329865\.m2\repository\javax\servlet\servlet-api\2.3\servlet-api-2.3.jar;C:\Users\A329865\.m2\repository\commons-fileupload\commons-fileupload\1.3.3\commons-fileupload-1.3.3.jar;C:\Users\A329865\.m2\repository\wsdl4j\wsdl4j\1.6.2\wsdl4j-1.6.2.jar;C:\Users\A329865\.m2\repository\org\apache\ws\xmlschema\xmlschema-core\2.2.1\xmlschema-core-2.2.1.jar;C:\Users\A329865\.m2\repository\org\apache\neethi\neethi\3.0.3\neethi-3.0.3.jar;C:\Users\A329865\.m2\repository\org\apache\woden\woden-core\1.0M10\woden-core-1.0M10.jar;C:\Users\A329865\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;C:\Users\A329865\.m2\repository\org\apache\ws\commons\axiom\axiom-dom\1.2.20\axiom-dom-1.2.20.jar;C:\Users\A329865\.m2\repository\org\codehaus\woodstox\woodstox-core-asl\4.2.0\woodstox-core-asl-4.2.0.jar;C:\Users\A329865\.m2\repository\org\codehaus\woodstox\stax2-api\3.1.1\stax2-api-3.1.1.jar;C:\Users\A329865\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\A329865\.m2\repository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar;C:\Users\A329865\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\A329865\.m2\repository\org\apache\axis2\axis2-transport-local\1.7.7\axis2-transport-local-1.7.7.jar;C:\Users\A329865\.m2\repository\net\sf\saxon\Saxon-HE\9.8.0-6\Saxon-HE-9.8.0-6.jar;C:\Users\A329865\.m2\repository\org\apache\axis2\axis2-jaxws\1.7.7\axis2-jaxws-1.7.7.jar;C:\Users\A329865\.m2\repository\org\apache\axis2\axis2-saaj\1.7.7\axis2-saaj-1.7.7.jar;C:\Users\A329865\.m2\repository\org\apache\axis2\axis2-metadata\1.7.7\axis2-metadata-1.7.7.jar;C:\Users\A329865\.m2\repository\com\sun\xml\ws\jaxws-tools\2.1.3\jaxws-tools-2.1.3.jar;C:\Users\A329865\.m2\repository\xml-resolver\xml-resolver\1.2\xml-resolver-1.2.jar;C:\Users\A329865\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.6\jaxb-impl-2.2.6.jar;C:\Users\A329865\.m2\repository\xalan\xalan\2.7.0\xalan-2.7.0.jar;C:\Users\A329865\.m2\repository\org\apache\axis2\axis2-transport-http\1.7.7\axis2-transport-http-1.7.7.jar;C:\Users\A329865\.m2\repository\org\apache\httpcomponents\httpclient\4.5.2\httpclient-4.5.2.jar;C:\Users\A329865\.m2\repository\org\apache\httpcomponents\httpcore\4.4.4\httpcore-4.4.4.jar;C:\Users\A329865\.m2\repository\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3.1.jar;C:\Users\A329865\.m2\repository\com\oracle\jdbc\ojdbc7\12.1.0.2\ojdbc7-12.1.0.2.jar;C:\Users\A329865\.m2\repository\com\oracle\jdbc\xdb6\12.1.0.2\xdb6-12.1.0.2.jar;C:\Users\A329865\.m2\repository\com\oracle\jdbc\orai18n\12.1.0.2\orai18n-12.1.0.2.jar;C:\Users\A329865\.m2\repository\com\oracle\jdbc\xmlparserv2\12.1.0.2\xmlparserv2-12.1.0.2.jar;C:\Users\A329865\.m2\repository\com\oracle\jdbc\oraclepki\12.1.0.2\oraclepki-12.1.0.2.jar;C:\Users\A329865\.m2\repository\com\oracle\jdbc\osdt_cert\12.1.0.2\osdt_cert-12.1.0.2.jar;C:\Users\A329865\.m2\repository\com\oracle\jdbc\osdt_core\12.1.0.2\osdt_core-12.1.0.2.jar;C:\Users\A329865\.m2\repository\com\jcraft\jsch\0.1.55\jsch-0.1.55.jar;C:\Users\A329865\.m2\repository\org\tukaani\xz\1.6\xz-1.6.jar;C:\Users\A329865\.m2\repository\org\apache\commons\commons-crypto\1.0.0\commons-crypto-1.0.0.jar;C:\Users\A329865\.m2\repository\net\java\dev\jna\jna\4.2.2\jna-4.2.2.jar;C:\Users\A329865\.m2\repository\org\jdom\jdom2\2.0.6\jdom2-2.0.6.jar;C:\Users\A329865\.m2\repository\commons-io\commons-io\2.6\commons-io-2.6.jar;C:\Users\A329865\.m2\repository\com\healthmarketscience\jackcess\jackcess\2.1.9\jackcess-2.1.9.jar;C:\Users\A329865\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\A329865\.m2\repository\com\sun\mail\javax.mail\1.6.0\javax.mail-1.6.0.jar;C:\Users\A329865\.m2\repository\xerces\xercesImpl\2.12.0\xercesImpl-2.12.0.jar;C:\Users\A329865\.m2\repository\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar;C:\Users\A329865\.m2\repository\com\googlecode\java-diff-utils\diffutils\1.2.1\diffutils-1.2.1.jar
2019/05/02 10:04:31:305 MESZ [DEBUG] HttpClient - Operating system name: Windows 7
2019/05/02 10:04:31:306 MESZ [DEBUG] HttpClient - Operating system architecture: amd64
2019/05/02 10:04:31:306 MESZ [DEBUG] HttpClient - Operating system version: 6.1
2019/05/02 10:04:31:398 MESZ [DEBUG] HttpClient - SUN 1.8: SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS & DKS keystores; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores, JavaPolicy Policy; JavaLoginConfig Configuration)
2019/05/02 10:04:31:398 MESZ [DEBUG] HttpClient - SunRsaSign 1.8: Sun RSA signature provider
2019/05/02 10:04:31:398 MESZ [DEBUG] HttpClient - SunEC 1.8: Sun Elliptic Curve provider (EC, ECDSA, ECDH)
2019/05/02 10:04:31:398 MESZ [DEBUG] HttpClient - SunJSSE 1.8: Sun JSSE provider(PKCS12, SunX509/PKIX key/trust factories, SSLv3/TLSv1/TLSv1.1/TLSv1.2)
2019/05/02 10:04:31:398 MESZ [DEBUG] HttpClient - SunJCE 1.8: SunJCE Provider (implements RSA, DES, Triple DES, AES, Blowfish, ARCFOUR, RC2, PBE, Diffie-Hellman, HMAC)
2019/05/02 10:04:31:398 MESZ [DEBUG] HttpClient - SunJGSS 1.8: Sun (Kerberos v5, SPNEGO)
2019/05/02 10:04:31:398 MESZ [DEBUG] HttpClient - SunSASL 1.8: Sun SASL provider(implements client mechanisms for: DIGEST-MD5, GSSAPI, EXTERNAL, PLAIN, CRAM-MD5, NTLM; server mechanisms for: DIGEST-MD5, GSSAPI, CRAM-MD5, NTLM)
2019/05/02 10:04:31:399 MESZ [DEBUG] HttpClient - XMLDSig 1.8: XMLDSig (DOM XMLSignatureFactory; DOM KeyInfoFactory; C14N 1.0, C14N 1.1, Exclusive C14N, Base64, Enveloped, XPath, XPath2, XSLT TransformServices)
2019/05/02 10:04:31:399 MESZ [DEBUG] HttpClient - SunPCSC 1.8: Sun PC/SC provider
2019/05/02 10:04:31:399 MESZ [DEBUG] HttpClient - SunMSCAPI 1.8: Sun's Microsoft Crypto API provider
2019/05/02 10:04:31:401 MESZ [DEBUG] DefaultHttpParams - Set parameter http.connection-manager.timeout = 30000
2019/05/02 10:04:31:568 MESZ [DEBUG] DefaultHttpParams - Set parameter http.authentication.preemptive = true
2019/05/02 10:04:31:572 MESZ [DEBUG] DefaultHttpParams - Set parameter http.connection.timeout = 60000
2019/05/02 10:04:31:572 MESZ [DEBUG] DefaultHttpParams - Set parameter http.socket.timeout = 60000
2019/05/02 10:04:31:591 MESZ [DEBUG] MultiThreadedHttpConnectionManager - HttpConnectionManager.getConnection:  config = HostConfiguration[host=http://xxx.xxx.xxx.xxx:8000], timeout = 0
2019/05/02 10:04:31:592 MESZ [DEBUG] MultiThreadedHttpConnectionManager - Allocating new connection, hostConfig=HostConfiguration[host=http://xxx.xxx.xxx.xxx:8000]
2019/05/02 10:04:31:600 MESZ [DEBUG] HttpMethodDirector - Preemptively sending default basic credentials
2019/05/02 10:04:31:610 MESZ [DEBUG] HttpMethodDirector - Authenticating with BASIC <any realm>@xxx.xxx.xxx.xxx:8000
2019/05/02 10:04:31:610 MESZ [DEBUG] HttpMethodParams - Credential charset not configured, using HTTP element charset
2019/05/02 10:04:31:614 MESZ [DEBUG] HttpConnection - Open connection to xxx.xxx.xxx.xxx:8000
2019/05/02 10:04:52:654 MESZ [DEBUG] HttpMethodDirector - Closing the connection.
2019/05/02 10:04:52:655 MESZ [INFO] HttpMethodDirector - I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
2019/05/02 10:04:52:655 MESZ [DEBUG] HttpMethodDirector - Connection timed out: connect <java.net.ConnectException: Connection timed out: connect>java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:140)
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:125)
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.axis2.transport.http.impl.httpclient3.HTTPSenderImpl.executeMethod(HTTPSenderImpl.java:872)
    at org.apache.axis2.transport.http.impl.httpclient3.HTTPSenderImpl.sendViaPost(HTTPSenderImpl.java:212)
    at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:121)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:403)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:234)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:431)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:399)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:150)
    at org.put.pva.ws.PRODUCTCATALOGStub.getCatalog(PRODUCTCATALOGStub.java:190)
    at org.put.pva.katalog.KatalogVersionenLesen.getCatalogData(KatalogVersionenLesen.java:290)
    at org.put.pva.katalog.KatalogVersionenLesen.getCatalogVersion(KatalogVersionenLesen.java:189)
    at org.put.pva.katalog.KatalogVersionenLesen.<init>(KatalogVersionenLesen.java:133)
    at org.put.pva.Ablaufsteuerung.run(Ablaufsteuerung.java:203)
    at java.lang.Thread.run(Thread.java:748)

Я попытался решить проблему, установив параметры времени ожидания, но это не сработало.Может быть, кто-то может определить ошибку.Мой код:

private GetCatalogResponse getCatalogData(GetCatalog getCat) throws AxisFault, GetCatalogExceptionException, RemoteException, Exception {

        PRODUCTCATALOGStub prodCat = new PRODUCTCATALOGStub(this.targetEndpoint);

        GetCatalogResponse wsResponse;

        // Basic Authentication
        Options option = prodCat._getServiceClient().getOptions();

        MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
        HttpConnectionManagerParams params = connectionManager.getParams();
        params.setConnectionTimeout(60000);
        params.setSoTimeout(60000);
        params.setDefaultMaxConnectionsPerHost(20);
        params.setMaxTotalConnections(20);
        connectionManager.setParams(params);

        // using HttpClient 3.1
        HttpClient httpClient = new HttpClient(connectionManager);

        HttpConnectionManagerParams connectionManagerParams = httpClient.getHttpConnectionManager().getParams();
        connectionManagerParams.setParameter("http.connection-manager.timeout", 30000);

        HttpTransportPropertiesImpl.Authenticator auth = new HttpTransportPropertiesImpl.Authenticator();
        auth.setPreemptiveAuthentication(true);
        auth.setUsername(this.User);
        auth.setPassword(Crypto.decipher(pw));
        option.setProperty(HTTPConstants.AUTHENTICATE, auth);
        option.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
        option.setProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER, connectionManager);
        option.setProperty(HTTPConstants.CHUNKED, Boolean.FALSE);

        // calling the webservice
        wsResponse = prodCat.getCatalog(getCat);

        return wsResponse;

    }

Затем я попытался вызвать (тестовый) веб-сервис с SoapUI, и это сработало.Итак, мне кажется, что мой код недостаточно хорош.Я проверил сообщение SoapUI и увидел, что он использует HTTP-Client 4.1.1.Мое приложение использует HTTP-клиент 3.1 (см. Сообщения об отладке и ошибках выше).Сообщение SoapUI:

POST http://xxx.xxx.xxx.xxx:8000/sap/bc/srt/rfc/sap/ytm_wsp_16/002/productcatalog/default HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 538
Host: xxx.xxx.xxx.xxx:8000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Cookie: sap-usercontext=sap-client=002
Cookie2: $Version=1
Authorization: Basic UE9SVFVTX1NJVDI6cG9ydHVzc2l0Mg==

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:GetCatalog>
         <Katalog>PRODUCT</Katalog>
         <NurVerwaltungsdaten>true</NurVerwaltungsdaten>
         <VersionOld>9999</VersionOld>
         <ZipArchiv>true</ZipArchiv>
      </urn:GetCatalog>
   </soapenv:Body>
</soapenv:Envelope>

Теперь я хочу использовать HTTP-клиент 4.xx тоже.Даже если я не знаю, решит ли это мою проблему.Но я не могу это реализовать.Я не знаю, как подключить HTTP-клиент к заглушке.Я не нашел много подсказок в сети.Лучшим является следующее, но это не объясняет мою проблему: stackoverflow: Как настроить SSL с Axis2 с использованием httpClient4

Мой код:

private GetCatalogResponse getCatalogData(GetCatalog getCat) throws AxisFault, GetCatalogExceptionException, RemoteException, Exception {

        logger.info("URI: " + this.targetEndpoint);
        final ConfigurationContext ctx = ConfigurationContextFactory.createDefaultConfigurationContext();
        PRODUCTCATALOGStub prodCat = new PRODUCTCATALOGStub(ctx, this.targetEndpoint);

        GetCatalogResponse wsResponse;

        // using HttpClient 4.5.2 (part of axis2 1.7.7)
        CredentialsProvider provider = new BasicCredentialsProvider();
        UsernamePasswordCredentials credentials
                = new UsernamePasswordCredentials(this.User, Crypto.decipher(pw));
        provider.setCredentials(AuthScope.ANY, credentials);

        HttpClient httpClient = HttpClientBuilder.create()
                .setDefaultCredentialsProvider(provider)
                .build();

        /*
         * How to attache the httpClient to the call of the webservice?
         */


        // calling the webservice
        wsResponse= prodCat.getCatalog(getCat);

        return wsResponse;

    }

Кто-нибудь может мне помочь?Может быть, есть другое решение, чтобы решить проблему.Заранее спасибо.

1 Ответ

0 голосов
/ 15 мая 2019

Я заставил это работать. Решение можно найти в посте, который я уже упоминал ( stackoverflow: Как настроить SSL с Axis2 с использованием httpClient4 ). Должен был прочитать его до конца, но мне не нужен SSL. Для предотвращения надоедливых записей INFO папка Axis2Repo содержит две пустые папки services и modules .

private GetCatalogResponse getCatalogData(GetCatalog getCat) throws AxisFault, GetCatalogExceptionException, RemoteException, Exception {

        ConfigurationContext ctx;
        ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem("MainFolder/Config-Files/Axis2Repo","MainFolder/Config-Files/axis2.xml");

        PRODUCTCATALOGStub prodCat = new PRODUCTCATALOGStub(ctx, this.targetEndpoint);

        GetCatalogResponse wsResponse;

        // Basic Authentication
        Options option = prodCat._getServiceClient().getOptions();

        HttpClient httpClient = new DefaultHttpClient();

        HttpTransportPropertiesImpl.Authenticator auth = new HttpTransportPropertiesImpl.Authenticator();

        auth.setPreemptiveAuthentication(true);
        auth.setUsername(this.User);
        auth.setPassword(Kryptologie.entschluesseln(Crypto.decipher(this.pw)));
        option.setProperty(HTTPConstants.AUTHENTICATE, auth);
        option.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);

        // calling the webservice
        wsResponse = prodCat.getCatalog(getCat);

        return wsResponse;

    }

Единственное, что мне не нравится, это то, что класс DefaultHttpClient устарел, но Axis2 нуждается в этом. Может быть, кто-то знает другой способ, где устаревший класс не нужен.

...