Are you calling

ConfigurationContext myConfigContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem(cheminDisque,
cheminDisque +"/conf/axis2.xml");

200 times?

You don't need to be. In fact you might only need to create a single
instance of the stub. The configContext is only designed to be created
once.

Paul

On 5/16/07, Raf177 <[EMAIL PROTECTED]> wrote:

Hi,

I'm using Axis2 as client (adb binding) and Xfire as service. After around
200 calls, axis2 client is out of memory. Something is very interesting : if
i don't load axis2.xml file, there's no out of memory and the response is
very fast :
stub = new PatrimoineStub(null, "http://...";);

If I load axis2.xml, OutOfMemoryError occurs, and all the responses before
this error are slow :
ConfigurationContext myConfigContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem(cheminDisque,
cheminDisque +"/conf/axis2.xml");
stub = new PatrimoineStub(myConfigContext, "http://...";);

Unfortunately, i need to load axis2.xml.

If anybody has an idea, i will appreciate !

My axis2.xml file :
<?xml version="1.0" encoding="UTF-8"?>
<!--
 !
 ! Copyright 2006 The Apache Software Foundation.
 !
 ! Licensed under the Apache License, Version 2.0 (the "License");
 ! you may not use this file except in compliance with the License.
 ! You may obtain a copy of the License at
 !
 !      http://www.apache.org/licenses/LICENSE-2.0
 !
 ! Unless required by applicable law or agreed to in writing, software
 ! distributed under the License is distributed on an "AS IS" BASIS,
 ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ! See the License for the specific language governing permissions and
 ! limitations under the License.
 !-->
<axisconfig name="AxisJava2.0">

        <module ref="rampart" />

        <parameter name="OutflowSecurity">
      <action>
        <items>Signature</items>
        <user>zenithopcvm</user>
        <signaturePropFile>client.properties</signaturePropFile>

<passwordCallbackClass>net.gicm.astral.handler.PasswordHandler</passwordCallbackClass>
        <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
      </action>
    </parameter>

        <parameter name="InflowSecurity">
      <action>
        <items>Signature</items>
        <signaturePropFile>client.properties</signaturePropFile>

<passwordCallbackClass>net.gicm.astral.handler.PasswordHandler</passwordCallbackClass>
      </action>
    </parameter>

    <!-- ================================================= -->
    <!-- Parameters -->
    <!-- ================================================= -->
    <parameter name="hotdeployment" locked="false">true</parameter>
    <parameter name="hotupdate" locked="false">false</parameter>
    <parameter name="enableMTOM" locked="false">false</parameter>

    <!--During a fault, stacktrace can be sent with the fault message. The
following flag will control -->
    <!--that behaviour.-->
    <parameter name="sendStacktraceDetailsWithFaults"
locked="false">true</parameter>

    <!--If there aren't any information available to find out the fault
reason, we set the message of the exception-->
    <!--as the faultreason/Reason. But when a fault is thrown from a service
or some where, it will be -->
    <!--wrapped by different levels. Due to this the initial exception
message can be lost. If this flag-->
    <!--is set then, Axis2 tries to get the first exception and set its
message as the faultreason/Reason.-->
    <parameter name="DrillDownToRootCauseForFaultReason"
locked="false">false</parameter>

    <!--This is the user name and password of admin console-->
    <parameter name="userName" locked="false">admin</parameter>
    <parameter name="password" locked="false">axis2</parameter>

    <!--To override repository/services you need to uncomment following
parameter and value SHOULD be absolute file path.-->
    <!--<parameter name="services" locked="false">service</parameter>-->
    <!--To override repository/modules you need to uncomment following
parameter and value SHOULD be absolute file path-->
    <!--<parameter name="modules" locked="false">modules</parameter>-->

    <!--Following params will set the proper context paths for invocations.
All the endpoints will have a commons context-->
    <!--root which can configured using the following contextRoot
parameter-->
    <!--<parameter name="contextRoot" locked="false">axis2</parameter>-->

    <!--Our HTTP endpoints can handle both REST and SOAP. Following
parameters can be used to distinguish those endpoints-->
    <!--<parameter name="servicePath" locked="false">services</parameter>-->
    <!--<parameter name="restPath" locked="false">rest</parameter>-->

    <!--Set the flag to true if you want to enable transport level session
management-->
    <parameter name="manageTransportSession"
locked="false">false</parameter>

    <!--Following two parameters will be used to handle REST in Axis2. The
default settings will make Axis2 to have two-->
    <!--different endpoints, one for REST (AxisRESTServlet) one for SOAP
message handling (AxisServlet). But following-->
    <!--parameters help to tweak the message handling of two main servlets.
-->

    <!-- If the enableRESTInAxis2MainServlet is true, then Axis2MainServlet
will handle both SOAP and REST messages -->
    <parameter name="enableRESTInAxis2MainServlet"
locked="true">true</parameter>

    <!-- Following parameter will completely disable REST handling in both
the servlets-->
    <parameter name="disableREST" locked="true">false</parameter>

    <!-- This will disable the separate servlet we have for REST handling.
-->
    <parameter name="disableSeparateEndpointForREST"
locked="true">false</parameter>



    <!-- ================================================= -->
    <!-- Message Receivers -->
    <!-- ================================================= -->
    <!--This is the Default Message Receiver for the system , if you want to
have MessageReceivers for -->
    <!--all the other MEP implement it and add the correct entry to here ,
so that you can refer from-->
    <!--any operation -->
    <!--Note : You can override this for particular service by adding the
same element with your requirement-->
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only";

class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out";

class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    </messageReceivers>

    <!-- ================================================= -->
    <!-- Target Resolvers -->
    <!-- ================================================= -->
    <!-- Uncomment the following and specify the class name for your
TargetResolver to add -->
    <!-- a TargetResolver. TargetResolvers are used to process the To EPR
for example to -->
    <!-- choose a server in a cluster -->
    <!--<targetResolvers>-->
    <!--<targetResolver class="" />-->
    <!--</targetResolvers>-->


    <!-- ================================================= -->
    <!-- Transport Ins -->
    <!-- ================================================= -->
    <transportReceiver name="http"

class="org.apache.axis2.transport.http.SimpleHTTPServer">
        <parameter name="port" locked="false">6060</parameter>
        <!--If you want to give your own host address for EPR generation-->
        <!--uncomment following parameter , and set as you required.-->
        <!--<parameter name="hostname"
locked="false">http://myApp.com/ws</parameter>-->
    </transportReceiver>

    <transportReceiver name="tcp"
                       class="org.apache.axis2.transport.tcp.TCPServer">
        <parameter name="port" locked="false">6061</parameter>
        <!--If you want to give your own host address for EPR generation-->
        <!--uncomment following parameter , and set as you required.-->
        <!--<parameter name="hostname"
locked="false">tcp://myApp.com/ws</parameter>-->
    </transportReceiver>

    <!-- ================================================= -->
    <!-- Transport Outs -->
    <!-- ================================================= -->

    <transportSender name="jms"
                     class="org.apache.axis2.transport.jms.JMSSender"/>
    <transportSender name="tcp"

class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
    <transportSender name="local"

class="org.apache.axis2.transport.local.LocalTransportSender"/>
    <transportSender name="http"

class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
        <parameter name="Transfer-Encoding"
locked="false">chunked</parameter>
    </transportSender>
    <transportSender name="https"

class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
        <parameter name="Transfer-Encoding"
locked="false">chunked</parameter>
    </transportSender>

    <!-- ================================================= -->
    <!-- Phases  -->
    <!-- ================================================= -->
    <phaseOrder type="InFlow">
        <!--  System pre-defined phases       -->
         <phase name="Transport">
            <handler name="RequestURIBasedDispatcher"

class="org.apache.axis2.engine.RequestURIBasedDispatcher">
                <order phase="Transport"/>
            </handler>
            <handler name="SOAPActionBasedDispatcher"

class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
                <order phase="Transport"/>
            </handler>
        </phase>
        <phase name="Security"/>
        <phase name="PreDispatch"/>
        <phase name="Dispatch"
class="org.apache.axis2.engine.DispatchPhase">
            <handler name="AddressingBasedDispatcher"

class="org.apache.axis2.engine.AddressingBasedDispatcher">
                <order phase="Dispatch"/>
            </handler>

            <handler name="SOAPMessageBodyBasedDispatcher"

class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
                <order phase="Dispatch"/>
            </handler>
            <handler name="InstanceDispatcher"
                     class="org.apache.axis2.engine.InstanceDispatcher">
                <order phase="Dispatch"/>
            </handler>
        </phase>
        <!--  System pre defined phases       -->
        <!--   After Postdispatch phase module author or or service author
can add any phase he want      -->
        <phase name="OperationInPhase"/>
        <phase name="SecurityPhase">
            <handler name="SecurityHandler"
                     class="net.gicm.astral.handler.SecurityHandler">
                <order phase="Security"/>
            </handler>
        </phase>
    </phaseOrder>
    <phaseOrder type="OutFlow">
        <!--      user can add his own phases to this area  -->
        <phase name="OperationOutPhase"/>
        <!--system predefined phase-->
        <!--these phase will run irrespective of the service-->
        <phase name="PolicyDetermination"/>
        <phase name="MessageOut"/>
        <phase name="Security"/>
    </phaseOrder>
    <phaseOrder type="InFaultFlow">
        <phase name="PreDispatch"/>
        <phase name="Dispatch"
class="org.apache.axis2.engine.DispatchPhase">
            <handler name="RequestURIBasedDispatcher"

class="org.apache.axis2.engine.RequestURIBasedDispatcher">
                <order phase="Dispatch"/>
            </handler>

            <handler name="SOAPActionBasedDispatcher"

class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
                <order phase="Dispatch"/>
            </handler>

            <handler name="AddressingBasedDispatcher"

class="org.apache.axis2.engine.AddressingBasedDispatcher">
                <order phase="Dispatch"/>
            </handler>

            <handler name="SOAPMessageBodyBasedDispatcher"

class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
                <order phase="Dispatch"/>
            </handler>
            <handler name="InstanceDispatcher"
                     class="org.apache.axis2.engine.InstanceDispatcher">
                <order phase="Dispatch"/>
            </handler>
        </phase>
        <!--      user can add his own phases to this area  -->
        <phase name="OperationInFaultPhase"/>
    </phaseOrder>
    <phaseOrder type="OutFaultFlow">
        <!--      user can add his own phases to this area  -->
        <phase name="OperationOutFaultPhase"/>
        <phase name="PolicyDetermination"/>
        <phase name="MessageOut"/>
    </phaseOrder>
</axisconfig>


--
View this message in context: 
http://www.nabble.com/Axis2-client-%2B-Xfire-service-%3A-OutOfMemoryError-tf3763618.html#a10638755
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to