JAXWS и APACHEAXIS2 не в состоянии провести коврику в зависимостиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JAXWS и APACHEAXIS2 не в состоянии провести коврику в зависимости

Сообщение Anonymous »

Из-за некоторых неизбежных причин у меня есть Jaxws-2.3.1 и Apacheaxis2-1.6 в моих зависимостях. Я написал код, используя JAXWS для вызова SOAP API. Я сталкиваюсь с проблемой, пытаясь вызвать SOAP API с помощью JAXWS. Код работает нормально, когда Apacheaxis2 удаляется из зависимостей, но при добавлении Axis2 я получаю следующее исключение: < /p>
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:148) ~[?:?]
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:129) ~[?:?]
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) ~[?:?]
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434) ~[?:?]
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306) ~[?:?]
at sun.security.validator.Validator.validate(Validator.java:264) ~[?:?]
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231) ~[?:?]
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132) ~[?:?]
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638) ~[?:?]
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473) ~[?:?]
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369) ~[?:?]
at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396) ~[?:?]
at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480) ~[?:?]
at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458) ~[?:?]
at sun.security.ssl.TransportContext.dispatch(TransportContext.java:206) ~[?:?]
at sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) ~[?:?]
at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1510) ~[?:?]
at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1425) ~[?:?]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) ~[?:?]
at sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:925) ~[?:?]
at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1295) ~[?:?]
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81) ~[?:?]
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142) ~[?:?]
at org.apache.commons.httpclient.ChunkedOutputStream.flush(ChunkedOutputStream.java:191) ~[commons-httpclient-3.1.jar:3.1]
at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:103) ~[woodstox-core-6.7.0.jar:6.7.0]
at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:242) ~[woodstox-core-6.7.0.jar:6.7.0]
at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:260) ~[woodstox-core-6.7.0.jar:6.7.0]
at org.apache.axiom.om.impl.MTOMXMLStreamWriter.close(MTOMXMLStreamWriter.java:224) ~[axiom.jar:1.2.15]
at org.apache.axiom.om.impl.common.AxiomContainerSupport.ajc$interMethod$org_apache_axiom_om_impl_common_AxiomContainerSupport$org_apache_axiom_om_impl_common_AxiomContainer$serializeAndConsume(AxiomContainerSupport.aj:320) ~[axiom.jar:1.2.15]
at org.apache.axiom.om.impl.llom.OMElementImpl.serializeAndConsume(OMElementImpl.java:1) ~[axiom.jar:1.2.15]
at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:74) ~[axis2-kernel-1.6.4.jar:1.6.4]
at org.apache.axis2.transport.http.AxisRequestEntity.writeRequest(AxisRequestEntity.java:84) ~[axis2-transport-http-1.6.4.jar:1.6.4]
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499) ~[commons-httpclient-3.1.jar:3.1]
at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114) ~[commons-httpclient-3.1.jar:3.1]
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096) ~[commons-httpclient-3.1.jar:3.1]
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) ~[commons-httpclient-3.1.jar:3.1]
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) ~[commons-httpclient-3.1.jar:3.1]
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) ~[commons-httpclient-3.1.jar:3.1]
at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:621) ~[axis2-transport-http-1.6.4.jar:1.6.4]
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:193) ~[axis2-transport-http-1.6.4.jar:1.6.4]
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75) ~[axis2-transport-http-1.6.4.jar:1.6.4]
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:396) ~[axis2-transport-http-1.6.4.jar:1.6.4]
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223) ~[axis2-transport-http-1.6.4.jar:1.6.4]
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443) ~[axis2-kernel-1.6.4.jar:1.6.4]
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406) ~[axis2-kernel-1.6.4.jar:1.6.4]
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) ~[axis2-kernel-1.6.4.jar:1.6.4]
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) ~[axis2-kernel-1.6.4.jar:1.6.4]
at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:578) ~[axis2-jaxws-1.6.4.jar:1.6.4]
at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.doInvoke(AxisInvocationController.java:127) ~[axis2-jaxws-1.6.4.jar:1.6.4]
at org.apache.axis2.jaxws.core.controller.impl.InvocationControllerImpl.invoke(InvocationControllerImpl.java:93) ~[axis2-jaxws-1.6.4.jar:1.6.4]
at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:373) ~[axis2-jaxws-1.6.4.jar:1.6.4]
at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:171) ~[axis2-jaxws-1.6.4.jar:1.6.4]
at jdk.proxy2.$Proxy103.aanleveren(Unknown Source) ~[?:?]
at com.xyz.filing.mynamespace.accessor.DigipoortAccessor.uploadDocument(DigipoortAccessor.java:91) ~[MyPackage-1.0.jar:?]
at com.xyz.filing.manager.mynamespace.processTransactionWiseSubmission(FilingManager.java:164) ~[MyPackage-1.0.jar:?]
... 61 more
< /code>
Что я пробовал до сих пор: < /strong> < /p>

SSL -сертификат проверка: я подтверждено, что сертификаты действительны. Запрос работает отлично при удалении Apache Axis2. Сгенерированный клиент возвращает javax.xml.ws.service, который в конечном итоге делегирует в обслуживании. призван. Без Axis2, я считаю, что вместо этого используется эталонная реализация JAXWS, и проблема не возникает. > < /p>

set -djavax.xml.ws.spi.provider = javax.xml.ws.spi.providerimp Это не решило проблему. /ol>
фрагменты кода:
Client Creation: < /p>
public static AanleverServiceV12 createAanleverServiceClient(@NonNull final String wsdlRelativePath) {
try {
final URL wsdlUrl = Path.of(System.getProperty("root", "."), wsdlRelativePath).toUri().toURL();
return new AanleverServiceV12_Service(wsdlUrl).getAanleverServiceV12();
} catch (final Exception e) {
throw new EFilerException("Error while initializing Digipoort Service", e);
}
}
< /code>
public AanleverResponse uploadDocument(@NonNull final AanleverRequest aanleverRequest,
@NonNull final AuthRequestBO authRequestBO) {
try {
configureAanleverService(aanleverService, authRequestBO);
return aanleverService.aanleveren(aanleverRequest);
} catch (final AanleverServiceFault fault) {
throw new EFilerException("Error returned while uploading document from Digipoort Service", fault);
} catch (final Exception e) {
throw new EFilerException("Error occurred while uploading to Digipoort Service", e);
}
}
< /code>
SOAP service configuration:
private void configureAanleverService(final AanleverServiceV12 aanleverService, final AuthRequestBO authRequestBO) {
final BindingProvider bindingProvider = (BindingProvider) aanleverService;
final AanleverServiceRequestInterceptor signerHandler = new AanleverServiceRequestInterceptor(
authRequestBO.getKeyStore(), authRequestBO.getPassword());
bindingProvider.getBinding().setHandlerChain(List.of(signerHandler));
final String aanleverServiceEndpoint = AppConfig.findString(AANLEVER_SERVICE_ENDPOINT_KEY);
final Map context = bindingProvider.getRequestContext();
context.put(CONNECT_TIMEOUT, WEB_SERVICE_TIMEOUT_MILLIS);
context.put(REQUEST_TIMEOUT, WEB_SERVICE_TIMEOUT_MILLIS);
context.put(ENDPOINT_ADDRESS_PROPERTY, endpointAddress);
context.put(SOAPACTION_USE_PROPERTY, true);
context.put(SOAPACTION_URI_PROPERTY, soapAction);
}
< /code>
The exception trace highlights:

The error occurs during the SSL handshake (sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path), which works fine when Axis2 is not included.
Question:
Has anyone encountered a similar issue when both JAXWS and Apache Axis2 are present in the dependencies? How can I ensure that JAXWS works correctly with Axis2, or what steps can I take to resolve the SSL certificate validation issue?
I appreciate any suggestions or solutions you can offer!

Подробнее здесь: https://stackoverflow.com/questions/793 ... pendencies
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»