Hello Inder,

Inder Dhillon wrote:

Hello charitha

Thanks for your help. I did all what u said and now it works fine. I have one more question, quite basic one.
If I have to add only handler then what exactly should I include in the
axis2.xml file, and where should I call my handler class file as I am having
problem with this too.

I didn't get your question clearly. However, if you want to add a new handler, you have to define it with a phase in the axis2.xml as follows.

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

you can add the handler implementation class as a jar file in to WEB-INF\lib directory.


I'll really appreciate your help.

regards
Inder Dhillon

-----Original Message-----
From: Charitha Kankanamge [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 13, 2007 8:22 AM
To: [email protected]
Subject: Re: AXIS2- Beginner question-regarding adding own modules

Hello Inder,

I reproduced your issue and it is a bug in modules sample. Please follow the steps given below as a workaround until it is fixed.

1. Add the following line to run.client.servicewithmodule target in ..\samples\userguide\build.xml.

<jvmarg value="-Daxis2.xml=${mainDir}/conf/axis2.xml"/>

After adding this, you should have the following in the build.xml

<target name="run.client.servicewithmodule" depends="compile">
<java classname="userguide.clients.ClientForWebServiceWithModule"
classpathref="axis.classpath" fork="true">
<jvmarg value="-Daxis2.repo=${mainDir}/repository"/>
<jvmarg value="-Daxis2.xml=${mainDir}/conf/axis2.xml"/>
</java>
</target>

2. Disable addressing in axis2.xml

Comment <module ref="addressing"/>

3. Remove addressing.mar from ../repository/modules

4. Rename sample-logging.mar to logging.mar (This is another bug of Axis2-1.1.1 module sample; see https://issues.apache.org/jira/browse/AXIS2-2040)

5. Now run ant run.client.servicewithmodule

regards
Charitha





Inder Dhillon wrote:

Hello

I am posting my question again, please help me with this. I am new user of Axis2 and I am using Axis2-1.1.1 version. I was working on sample codes, but while working on adding new custom modules, I am not able to run my client application and its giving me the following error.

I have checked my axis2.xml file and everything is perfect over there. I am also attaching my axis2.xml and module.xml files along with this mail. I'll really appreciate if anyone can help me with this. And one more question, I was trying to add my own handler but it was not working fine, could you please tell me where exactly should I mention my handler class file ( I tried to mention it in axis2.xml along with the phase rule declaration)

Thanks in advance.

Inder Dhillon

------------------------------------------------------------------------

<!--
/*
* Copyright 2001-2004 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">
  <!-- ================================================= -->
  <!-- Parameters -->
  <!-- ================================================= -->
  <parameter name="hotdeployment" locked="false">true</parameter>
  <parameter name="hotupdate" locked="false">false</parameter>
  <parameter name="enableMTOM" locked="false">false</parameter>
  <parameter name="enableSwA" locked="false">false</parameter>

  <!--Uncomment if you want to enable file caching for attachments -->
  <!--parameter name="cacheAttachments" locked="false">true</parameter>
  <parameter name="attachmentDIR" locked="false"></parameter>
  <parameter name="sizeThreshold" locked="false">4000</parameter-->

  <!--This will give out the timout of the configuration contexts, in
seconds-->
  <parameter name="ConfigContextTimeoutInterval"
locked="false">30</parameter>
  <!--During a fault, stacktrace can be sent with the fault message. The
following flag will control -->
  <!--that behaviour.-->
  <parameter name="sendStacktraceDetailsWithFaults"
locked="false">false</parameter>
  <!--If there aren't any information available to find out the fault
reason, we set the message of the expcetion-->
  <!--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>
  <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="ServicesDirectory"
locked="false">service</parameter>-->
  <!--To override repository/modules you need to uncomment following
parameter and value SHOULD be absolute file path-->
  <!--<parameter name="ModulesDirectory"
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 distingiush those endpoints-->
  <!--In case of a servlet, if you change this you have to manually
change the settings of your servlet container to map this -->
  <!--context path to proper Axis2 servlets-->
  <!--<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
mangment-->
  <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">false</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>
  <!-- If you have a frontend host which exposes this webservice using a
different public URL  -->
  <!-- use this parameter to override autodetected url -->
  <!--<parameter name="httpFrontendHostUrl"
locked="false">https://someotherhost/context</parameter>-->
  <!--    The way of adding listener to the system-->
  <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
  <!--        <parameter name="RSS_URL"
locked="false">http://127.0.0.1/rss</parameter>-->
  <!--    </listener>-->

  <!-- ================================================= -->
  <!-- Message Receivers -->
  <!-- ================================================= -->
  <!--This is the Deafult 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 ovride 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>
  <!-- ================================================= -->
  <!-- Transport Ins -->
  <!-- ================================================= -->
  <transportReceiver name="http"

class="org.apache.axis2.transport.http.SimpleHTTPServer">
      <parameter name="port" locked="false">8080</parameter>
      <!-- Here is the complete list of supported parameters (see example
settings further below):
          port: the port to listen on (default 6060)
          hostname:  if non-null, url prefix used in reply-to endpoint
references                                 (default null)
          originServer:  value of http Server header in outgoing messages
(default "Simple-Server/1.1")
          requestTimeout:  value in millis of time that requests can wait
for data                                (default 20000)
          requestTcpNoDelay:  true to maximize performance and minimize
latency                                   (default true)
                              false to minimize bandwidth consumption by
combining segments
          requestCoreThreadPoolSize:  number of threads available for
request processing (unless queue fills up)  (default 25)
          requestMaxThreadPoolSize:  number of threads available for
request processing if queue fills us         (default 150)
                                     note that default queue never fills
up:  see HttpFactory
          threadKeepAliveTime:  time to keep threads in excess of core
size alive while inactive                  (default 180)
                                note that no such threads can exist with
default unbounded request queue
          threadKeepAliveTimeUnit:  TimeUnit of value in
threadKeepAliveTime (default SECONDS)                    (default SECONDS)
      -->
      <!-- <parameter name="hostname"
locked="false">http://www.myApp.com/ws</parameter> -->
      <!-- <parameter name="originServer"
locked="false">My-Server/1.1</parameter>           -->
      <!-- <parameter name="requestTimeout"
locked="false">10000</parameter>                   -->
      <!-- <parameter name="requestTcpNoDelay"
locked="false">false</parameter>                   -->
      <!-- <parameter name="requestCoreThreadPoolSize"
locked="false">50</parameter>                      -->
      <!-- <parameter name="RequestMaxThreadPoolSize"
locked="false">100</parameter>                     -->
      <!-- <parameter name="threadKeepAliveTime"
locked="false">240000</parameter>                  -->
      <!-- <parameter name="threadKeepAliveTimeUnit"
locked="false">MILLISECONDS</parameter>            -->
  </transportReceiver>
<!--Uncomment this and configure as appropriate for JMS transport
support, after setting up your JMS environment (e.g. ActiveMQ))
  <transportReceiver name="jms"
class="org.apache.axis2.transport.jms.JMSListener">
      <parameter name="myTopicConnectionFactory" locked="false">

        <parameter name="java.naming.factory.initial"
locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</param
eter>
        <parameter name="java.naming.provider.url"
locked="false">tcp://localhost:61616</parameter>             
        <parameter name="transport.jms.ConnectionFactoryJNDIName"
locked="false">TopicConnectionFactory</parameter>
      </parameter>

      <parameter name="myQueueConnectionFactory" locked="false">

        <parameter name="java.naming.factory.initial"
locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</param
eter>
        <parameter name="java.naming.provider.url"
locked="false">tcp://localhost:61616</parameter>             
        <parameter name="transport.jms.ConnectionFactoryJNDIName"
locked="false">QueueConnectionFactory</parameter>
      </parameter>

      <parameter name="default" locked="false">

        <parameter name="java.naming.factory.initial"
locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</param
eter>
        <parameter name="java.naming.provider.url"
locked="false">tcp://localhost:61616</parameter>             
        <parameter name="transport.jms.ConnectionFactoryJNDIName"
locked="false">QueueConnectionFactory</parameter>
      </parameter>
  </transportReceiver>-->

  <!--Uncomment if you want to have SMTP transport support-->
  <!--<transportReceiver name="mail"
class="org.apache.axis2.transport.mail.SimpleMailListener">-->
  <!--<parameter name="transport.mail.pop3.host"
locked="false">127.0.0.1</parameter>-->
  <!--<parameter name="transport.mail.pop3.user"
locked="false">axis2</parameter>-->
  <!--<parameter name="transport.mail.pop3.password"
locked="false">axis2</parameter>-->
  <!--<parameter name="transport.mail.pop3.port"
locked="false">110</parameter>-->
  <!--<parameter name="transport.mail.replyToAddress"
locked="false">[EMAIL PROTECTED]</parameter>-->
  <!--</transportReceiver>-->

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

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

  <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>
  <!--Uncomment this and configure as appropriate for JMS transport
support, after setting up your JMS environment (e.g. ActiveMQ))
  <transportSender name="jms"
                   class="org.apache.axis2.transport.jms.JMSSender"/>
  -->

  <!-- Uncomment this one with the appropriate papameters to enable the
SMTP transport Receiver
 <transportSender name="mailto"
class="org.apache.axis2.transport.mail.MailTransportSender">
     <parameter name="transport.mail.smtp.host"
locked="false">127.0.0.1</parameter>
     <parameter name="transport.mail.smtp.user"
locked="false">axis2</parameter>
     <parameter name="transport.mail.smtp.password"
locked="false">axis2</parameter>
     <parameter name="transport.mail.smtp.port"
locked="false">25</parameter>
 </transportSender>
 -->

  <!-- ================================================= -->
  <!-- Global Modules  -->
  <!-- ================================================= -->
  <!-- Comment this to disable Addressing -->
  <module ref="addressing"/>
        <module ref="soapmonitor"/>
        <module ref="logging"/>
        <module ref="rampart"/>
  <!--Configuring module , providing parameters for modules whether they
refer or not-->
  <!--<moduleConfig name="addressing">-->
  <!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
  <!--</moduleConfig>-->

  <!-- ================================================= -->
  <!-- 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="soapmonitorPhase"/>
        <phase name="loggingPhase"/>
  </phaseOrder>
  <phaseOrder type="OutFlow">
      <!--      user can add his own phases to this area  -->
        <phase name="soapmonitorPhase"/>
      <phase name="OperationOutPhase"/>
       <phase name="loggingPhase"/>
      <!--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="PostDispatch"/>
          </handler>
      </phase>
      <!--      user can add his own phases to this area  -->
      <phase name="OperationInFaultPhase"/>
              <phase name="soapmonitorPhase"/>
                <phase name="loggingPhase"/>
  </phaseOrder>
  <phaseOrder type="OutFaultFlow">
      <!--      user can add his own phases to this area  -->
        <phase name="soapmonitorPhase"/>
      <phase name="OperationOutFaultPhase"/>
      <phase name="loggingPhase"/>
      <phase name="PolicyDetermination"/>
      <phase name="MessageOut"/>
  </phaseOrder>
</axisconfig>



------------------------------------------------------------------------

<!--
/*
* Copyright 2001-2004 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.
*/
-->
<module name="logging" class="userguide.loggingmodule.LoggingModule">
  <InFlow>
      <handler name="InFlowLogHandler"
class="userguide.loggingmodule.LogHandler">
          <order phase="loggingPhase"/>
      </handler>
  </InFlow>

  <OutFlow>
      <handler name="OutFlowLogHandler"
class="userguide.loggingmodule.LogHandler">
          <order phase="loggingPhase"/>
      </handler>
  </OutFlow>

  <OutFaultFlow>
      <handler name="FaultOutFlowLogHandler"
class="userguide.loggingmodule.LogHandler">
          <order phase="loggingPhase"/>
      </handler>
  </OutFaultFlow>

  <InFaultFlow>
      <handler name="FaultInFlowLogHandler"
class="userguide.loggingmodule.LogHandler">
          <order phase="loggingPhase"/>
      </handler>
  </InFaultFlow>
</module>


------------------------------------------------------------------------

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




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


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






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

Reply via email to