Dear Apache CXF Developers,

I hope this email finds you well. My name is Lakshmi,  and I am currently 
working for  a project  where we use Apache CXF for SOAP-based communication. I 
am reaching out to seek your insights regarding an issue we've encountered when 
upgrading from CXF 4.0.0 to 4.0.5.

Issue Overview
We are facing intermittent SSL communication issues between our CXF-based 
client and a server which accepts soap request from client through a specific 
port.


  1.  The issue only arises when using HTTPS communication with CXF 4.0.5. It 
works seamlessly with CXF 4.0.0, also HTTP communication is working with CXF 
4.0.5.
  2.  Upon comparing the SSL handshake data for both versions, we observed that 
the TLS and cipher suite versions are the same.
  3.  We don’t have any changes in client or server application which can cause 
this issue.
  4.  Here is the CXF  error message we are seeing in client application : 
org.apache.cxf.interceptor.Fault: Could not send Message.
  5.  At the same side Server side we see  we are not receiving proper HTTP 
request content:   Http Error Content length < 0 , Connection closed to the 
client, Soap HTTP exception
Complete CXF error call stack is attached to this mail, please go through it.

Steps Taken So Far


  *   We ruled out potential issues related to SSL/TLS settings, as the 
configurations appear consistent between versions.
  *   As the issue is intermittent and it’s not like always fails on specific 
request (Soap request – Header and Body are same which we are using on CXF 
4.0.0) so ruling out any soap body specific issues.
  *   Based on the error log analysis, we suspect that the root cause may lie 
in internal CXF changes between versions.

Request for Assistance
Could you please help us understand:

  1.  In what scenarios the "Could not send Message" error might occur in CXF, 
so we can narrow our focus further.
  2.  Whether there are known changes between CXF 4.0.0 and 4.0.5 that could 
impact SSL/TLS communication?
  3.  What specific debugging steps or configurations you recommend to isolate 
and resolve this issue?

We would greatly appreciate your input, and I am happy to provide any 
additional details or logs to assist in diagnosing the problem.
Thank you for your time and for the incredible work you do on Apache CXF.

Best regards,
Lakshmi .
org.apache.cxf.interceptor.Fault: Could not send Message.
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:67)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:441)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:356)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:314)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140)
        at jdk.proxy2/jdk.proxy2.$Proxy124.getServiceList(Unknown Source)
        at 
com.recommind.provision.soap.client.ProvisioningPmdServiceFacade.getServiceList(ProvisioningPmdServiceFacade.java:56)
        at 
com.recommind.provision.service.RetryServiceImpl.checkAllServicesByStatus(RetryServiceImpl.java:132)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:354)
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768)
        at 
org.springframework.retry.interceptor.RetryOperationsInterceptor$1.doWithRetry(RetryOperationsInterceptor.java:93)
        at 
org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:329)
        at 
org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:209)
        at 
org.springframework.retry.interceptor.RetryOperationsInterceptor.invoke(RetryOperationsInterceptor.java:119)
        at 
org.springframework.retry.annotation.AnnotationAwareRetryOperationsInterceptor.invoke(AnnotationAwareRetryOperationsInterceptor.java:163)
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
        at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768)
        at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720)
        at 
com.recommind.provision.service.RetryServiceImpl$$SpringCGLIB$$0.checkAllServicesByStatus(<generated>)
        at 
com.recommind.provision.service.MbirProvisionServiceImpl.stopService(MbirProvisionServiceImpl.java:101)
        at 
com.recommind.provision.MbirProvisionServiceRunner.run(MbirProvisionServiceRunner.java:66)
        at 
org.springframework.boot.SpringApplication.lambda$callRunner$5(SpringApplication.java:790)
        at 
org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:83)
        at 
org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60)
        at 
org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:88)
        at 
org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798)
        at 
org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:789)
        at 
org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774)
        at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at 
java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
        at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
        at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at 
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at 
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
        at 
org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774)
        at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:342)
        at 
org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:149)
        at 
com.recommind.provision.MbirProvisionServiceApplication.main(MbirProvisionServiceApplication.java:22)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at 
org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91)
        at 
org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53)
        at 
org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58)
Caused by: java.net.http.HttpTimeoutException: HttpTimeoutException invoking 
https://localhost:8101/ihub: request timed out
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at 
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1452)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1433)
        at 
org.apache.cxf.transport.http.HttpClientHTTPConduit$HttpClientWrappedOutputStream.close(HttpClientHTTPConduit.java:662)
        at 
org.apache.cxf.ext.logging.LoggingOutputStream.postClose(LoggingOutputStream.java:53)
        at 
org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:228)
        at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:717)
        at 
org.apache.cxf.transport.http.HttpClientHTTPConduit.close(HttpClientHTTPConduit.java:249)
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
        ... 55 more
Caused by: java.net.http.HttpTimeoutException: request timed out
        at 
java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:63)
        at 
java.net.http/jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1270)
        at 
java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:899)
2024-12-27 14:59:25,227 [main] INFO  o.a.c.s.P.REQ_OUT - REQ_OUT

Reply via email to