Hello:
I'm using CXF 2.7.8 and JAX-WS to create a SOAP webservice
This webservice calls another webservice who requieres WS-Addressing
So, I declare a simple JAX-WS client with WS-Addressing enabled
<jaxws:client id="client"
serviceClass="com.external.WSPortType"
address="http://extermal.com/Process.jpd"
bindingId="http://schemas.xmlsoap.org/wsdl/soap/http">
<jaxws:features>
<wsa:addressing xmlns:wsa="http://cxf.apache.org/ws/addressing"/>
</jaxws:features>
</jaxws:client>
I inject this bean into my webservice implementor with
@Autowired
WSPortType client;
So, it's shared by all requests and I think is thread-safe 'in practice'
(http://cxf.apache.org/faq.html#FAQ-AreJAX-WSclientproxiesthreadsafe?)
This client sends messages like
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<Action xmlns="http://www.w3.org/2005/08/addressing">process</Action>
<MessageID
xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:aebe3485-07bc-4af7-a3a5-c1df7af15adb
</MessageID>
<To xmlns="http://www.w3.org/2005/08/addressing">http://extermal.com/Process.jpd
</To>
<ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
</ReplyTo>
</soap:Header>
<soap:Body>
<process xmlns="urn:com:external:types">
<phone>34606958413</phone>
<filterParams>
<field>data</field>
</filterParams>
</process>
</soap:Body>
</soap:Envelope>
and it receives the response correctly ( with the right MessageID )
Well, this is the scenario.
In this case, JVM memory heap increases all time and grows up until OOM
Looking at jvisualm I see a lot of string objects being used by
WS-addressing library
If I comment WS-Addressing feature , all works fine and the memory
heap's behaviour is normal.
What is wrong ? Any ideas ?
If you need more data or other test, no problem
Thanks and regads