On Friday, December 09, 2011 11:39:44 PM Marcus Young wrote:
> Hi Christian,
> 
> I have included the code segments below.  The commented out section was the
> original functionality that I removed in order to just focus on the service
> implementation itself.  I have since created another simple service that
> returns a String - with the same result.  Each time the service is invoked
> a new service implementation object is created on the heap.

Can you put a constructor on there there that does something like:

public HL7ServiceImpl() {
   Thread.dumpStack();
}

and grab the logs?   I want to see where they are being created.    CXF 
definitely shouldn't be doing it.   I'm kind of wondering if glassfish is 
shutting down the CXF servlet between requests or something.

Dan


> 
> 
> @WebService(name = "HL7Service", targetNamespace = "http://ws.foo.bar.com/";)
> public interface HL7Service {
>     @WebMethod(operationName = "submit", action = "urn:Submit")
>     public void submit(@WebParam(name = "msg") String msg);
> }
> 
> 
> @WebService(targetNamespace = "http://ws.foo.bar.com/";,
> endpointInterface = "com.bar.foo.ws.HL7Service", portName =
> "HL7ServiceImplPort", serviceName = "HL7ServiceImplService")
> public class HL7ServiceImpl implements HL7Service {
>     public void submit (String msg) {
> 
>     //  if (msg == null)
>     //      return ("NAK");
>     //  else
>     //      EventQueue.getInstance().submit(msg);
>     //
>     //  return "ACK";
> 
>         if (msg != null) { // temp
>             // DO nothing
>         }
>     }
> }
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans";
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:jaxws="http://cxf.apache.org/jaxws";
>     xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
> http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd";>
>     <import resource="classpath:META-INF/cxf/cxf.xml" />
>     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>         <jaxws:endpoint id="hl7service"
>         implementor="com.bar.foo.ws.HL7ServiceImpl" address="/hl7service">
>         <jaxws:features>
>             <bean class="org.apache.cxf.feature.LoggingFeature" />
>         </jaxws:features>
>     </jaxws:endpoint>
> </beans>
> 
> 
> 
> Marcus
> 
> On Fri, Dec 9, 2011 at 7:53 PM, Christian Schneider <[email protected]
> > wrote:
> > 
> > Hi Marcus,
> > 
> > it would help a lot if you could post your config/code so we see what
> > you
> > did.
> > You should really only instantiate the service once.
> > 
> > Christian
> > 
> > Am 09.12.2011 09:10, schrieb Marcus Young:
> >  I am sure that this has a very simple explanation, however I am still
> >  very>  
> >> much in the learning phase with CXF.
> >> 
> >> I have built a simple web service using the tooling in Eclipse
> >> (Dynamic
> >> web
> >> project / Glassfish 3 / CXF 2.4).  The service receives a String and
> >> writes
> >> it to a database.  I have noticed that after running for some time the
> >> application runs out of heap space.  Using a profiling tool I found
> >> that
> >> for each invocation of the service an implementation object was
> >> created on the heap.  These remained until the JVM ran out of heap
> >> space.  From a posting on Stack Overflow (
> >> http://stackoverflow.com/**questions/8427329/possible-**
> >> memory-leak-cxf-2-4-2-**glassfish-3<http://stackoverflow.com/questions
> >> /8427329/possible-memory-leak-cxf-2-4-2-glassfish-3> )
> >> it was suggested that a service implementation should essentially be a
> >> Singleton and only one instance should ever be created which is
> >> clearly
> >> not
> >> the case in my situation.  I have started to think that it may have
> >> something to do with the way I have configured CXF although I have not
> >> been
> >> able to find any information that relates to the issue that I
> >> am experiencing.
> >> 
> >> There is obviously a hole in my understanding or the code that I have
> >> written - any advice or guidance would be very much appreciated.
> >> 
> >> Marcus
> > 
> > --
> > Christian Schneider
> > http://www.liquid-reality.de
> > 
> > Open Source Architect
> > Talend Application Integration Division http://www.talend.com
-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to