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

Reply via email to