You didn't mention which Websphere version you are using for your Axis2 client and I am not a user, though anyways your version may have its own commons-logging.properties so I suggest looking to see if you have one already .
The issue could be, commons-logging on Websphere is set to Jdk14Logger. There is an FAQ for commons-logging that explains some of the issues on Websphere. https://cwiki.apache.org/confluence/display/COMMONS/Logging+FrequentlyAskedQuestions Still, in any case I would expect to see fatal Axis2 client errors in at least the Websphere console. On Wed, Sep 9, 2020 at 5:50 PM Murali Challa <challamura...@gmail.com> wrote: > I have added the appenders as mentioned above but still no error logs are > displayed. > > On Thu, 10 Sep 2020, 9:12 am robertlazarski, <robertlazar...@gmail.com> > wrote: > >> Axis2 internally uses Apache commons-logging, which describes itself as >> "an ultra-thin bridge between different logging implementations" . >> >> So adding an axis2 based appender in either a log4j or log4j2 logging >> implementation will work fine. >> >> On Wed, Sep 9, 2020 at 4:57 PM Murali Challa <challamura...@gmail.com> >> wrote: >> >>> So I can remove the log4j jar that came with axis2 and can just add the >>> below lines you shared? >>> >>> I believe Log4j and Log4j2 jars have different implementation right? >>> In that case if I remove log4j jar, it will cause issues right? >>> >>> On Thu, 10 Sep 2020, 8:22 am robertlazarski, <robertlazar...@gmail.com> >>> wrote: >>> >>>> log4j2 is fine, that's what I use in my own projects. >>>> >>>> For debugging, I suggest something like this in your log4j2.xml: >>>> >>>> <Logger name="org.apache.axis2" level="trace" additivity="false" > >>>> <AppenderRef ref="RollingFile"/> >>>> <AppenderRef ref="Console"/> >>>> </Logger> >>>> >>>> Robert >>>> >>>> On Wed, Sep 9, 2020 at 4:41 PM Murali Challa <challamura...@gmail.com> >>>> wrote: >>>> >>>>> We already using log4j2 in our application for logs. >>>>> >>>>> Do we need have specific log4j configuration as well to monitor Axis2 >>>>> logs? >>>>> >>>>> On Thu, 10 Sep 2020, 6:42 am robertlazarski, <robertlazar...@gmail.com> >>>>> wrote: >>>>> >>>>>> We are going to need some logging in order to help. If you put the >>>>>> log4j.properties file distributed by Axis2 into your client classes dir, >>>>>> i.e. classes/log4j.properties , there should be some errors in the logs >>>>>> or >>>>>> console. >>>>>> >>>>>> Robert >>>>>> >>>>>> >>>>>> On Wed, Sep 9, 2020 at 12:42 PM Murali Challa < >>>>>> challamura...@gmail.com> wrote: >>>>>> >>>>>>> Hi Robert, >>>>>>> >>>>>>> I created the client with Axis2 using the wsdl but it is falling >>>>>>> while executing the line *factory.createElement**(adbsource). * >>>>>>> >>>>>>> My bad is that I'm not getting any errors to debug the issue. It is >>>>>>> just stoping the execution there. >>>>>>> >>>>>>> I tried adding the most of required jars but still no luck. >>>>>>> >>>>>>> Do you have any idea why it failing ? >>>>>>> >>>>>>> Thanks & Regards, >>>>>>> Murali >>>>>>> >>>>>>> On Tue, 8 Sep 2020, 9:12 pm robertlazarski, < >>>>>>> robertlazar...@gmail.com> wrote: >>>>>>> >>>>>>>> Yep, if you are just using Axis2 as the client then no need for an >>>>>>>> aar, use a webapp or any of that. >>>>>>>> >>>>>>>> Here's some docs for using a client stub: >>>>>>>> >>>>>>>> >>>>>>>> https://axis.apache.org/axis2/java/core/docs/userguide-creatingclients-xmlbeans.html >>>>>>>> >>>>>>>> Robert >>>>>>>> >>>>>>>> On Tue, Sep 8, 2020 at 5:27 AM Murali Challa < >>>>>>>> challamura...@gmail.com> wrote: >>>>>>>> >>>>>>>>> *You need to create an aar file for your own services -* does it >>>>>>>>> mean that I don't need to create aar since I'm creating client using >>>>>>>>> wsdl >>>>>>>>> of some other service and not creating my own web services? >>>>>>>>> >>>>>>>>> My requirement is just to create stubs using axis2 with existing >>>>>>>>> wsdl and use the stubs to call the services . >>>>>>>>> >>>>>>>>> On Tue, 8 Sep 2020, 8:50 pm robertlazarski, < >>>>>>>>> robertlazar...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> You need to create an aar file for your own services. >>>>>>>>>> >>>>>>>>>> Web services clients and servers can use different >>>>>>>>>> implementations, both sides do not need to be Axis2 though you do >>>>>>>>>> need to >>>>>>>>>> be careful about the specifications both sides support. >>>>>>>>>> >>>>>>>>>> Robert >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Sep 8, 2020 at 4:28 AM Murali Challa < >>>>>>>>>> challamura...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> Thanks Robert for sharing the arr structure. >>>>>>>>>>> >>>>>>>>>>> The .arr that you shared is created to consume some sample >>>>>>>>>>> service right ? Or the arr is created by using the actual >>>>>>>>>>> webservice source? >>>>>>>>>>> >>>>>>>>>>> Also can you please confirm if both the client and actual >>>>>>>>>>> service need be created by using Axis2? >>>>>>>>>>> >>>>>>>>>>> In my case, we are using wsdl of some other application (where >>>>>>>>>>> the services are not created by Axis2) to generate stubs using >>>>>>>>>>> axis2. Will >>>>>>>>>>> this cause any problem? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Mon, 7 Sep 2020, 9:58 pm robertlazarski, < >>>>>>>>>>> robertlazar...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> The aar files I create for my own projects, just contains the >>>>>>>>>>>> services.xml. See below for an example: >>>>>>>>>>>> >>>>>>>>>>>> ./myaar.aar >>>>>>>>>>>> ./META-INF >>>>>>>>>>>> ./META-INF/MANIFEST.MF >>>>>>>>>>>> ./META-INF/services.xml >>>>>>>>>>>> >>>>>>>>>>>> If your web services were created via codegen like adb, the >>>>>>>>>>>> stub files are the client, the skeleton is the service on the >>>>>>>>>>>> server side >>>>>>>>>>>> and can reside under WEB-INF/classes. >>>>>>>>>>>> >>>>>>>>>>>> Robert >>>>>>>>>>>> >>>>>>>>>>>> On Mon, Sep 7, 2020 at 6:19 AM Murali Challa < >>>>>>>>>>>> challamura...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Yes Robert .. I'm going through the Axis2 docs and some videos >>>>>>>>>>>>> to understand the implementation of Axis2 . >>>>>>>>>>>>> >>>>>>>>>>>>> As per my understanding, we need to create the .aar file and >>>>>>>>>>>>> services.xml. Please confirm if my understanding is correct? >>>>>>>>>>>>> >>>>>>>>>>>>> .aar file need to be created for my Stub file or I need to >>>>>>>>>>>>> include any other files in building .aar? >>>>>>>>>>>>> >>>>>>>>>>>>> On Mon, 7 Sep 2020, 9:42 pm robertlazarski, < >>>>>>>>>>>>> robertlazar...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> version-1.7.9.aar is distributed by Axis2 and is optional. >>>>>>>>>>>>>> >>>>>>>>>>>>>> We have a lot of docs, see here for how to configure the >>>>>>>>>>>>>> services.xml. There is a learning curve that requires some time >>>>>>>>>>>>>> so I >>>>>>>>>>>>>> suggest going through the docs before getting started. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> http://axis.apache.org/axis2/java/core/docs/axis2config.html#Service_Configuration >>>>>>>>>>>>>> >>>>>>>>>>>>>> Robert >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Sun, Sep 6, 2020 at 6:31 PM Murali Challa < >>>>>>>>>>>>>> challamura...@gmail.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi Robert, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Sorry to bother you again.. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I could see the aar file with name generated as >>>>>>>>>>>>>>> version-1.7.9.aar. is this the one your mentioning about? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> And I don't see any services.xml created in my workspace. >>>>>>>>>>>>>>> Can you please confirm if we need to create it manually ? and >>>>>>>>>>>>>>> what all the >>>>>>>>>>>>>>> details to be mentioned in services.xml file?. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks in advance.. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Murali >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Mon, 7 Sep 2020, 1:04 am robertlazarski, < >>>>>>>>>>>>>>> robertlazar...@gmail.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> You can put the aar file of your axis2 code in your >>>>>>>>>>>>>>>> existing application, by creating a WEB-INF/services directory >>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>> includes your aar. Your aar file can include your axis2 code >>>>>>>>>>>>>>>> though that >>>>>>>>>>>>>>>> could alternatively go into WEB-INF/classes as normal. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The aar file needs at least your services.xml. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The axis2 jar dependencies depends on your use case. Here's >>>>>>>>>>>>>>>> what I use for my json and soap services, as an example. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> axis2-adb-1.7.9.jar axis2-jaxws-1.7.9.jar >>>>>>>>>>>>>>>> axis2-spring-1.7.9.jar >>>>>>>>>>>>>>>> axis2-jibx-1.7.9.jar >>>>>>>>>>>>>>>> axis2-transport-http-1.7.9.jar axis2-json-1.7.9.jar >>>>>>>>>>>>>>>> axis2-transport-local-1.7.9.jar >>>>>>>>>>>>>>>> axis2-codegen-1.7.9.jar axis2-kernel-1.7.9.jar >>>>>>>>>>>>>>>> axis2-java2wsdl-1.7.9.jar axis2-metadata-1.7.9.jar >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Robert >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Sun, Sep 6, 2020 at 9:04 AM Murali Challa < >>>>>>>>>>>>>>>> challamura...@gmail.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> So if I keep the Axis2 war file in my websphere, there is >>>>>>>>>>>>>>>>> no need to keep Axis2 jar in lib folder of actual application? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> And in which location of websphere I need to keep this >>>>>>>>>>>>>>>>> Axis2 war and how my app is going to refer to that war to run >>>>>>>>>>>>>>>>> the webseries >>>>>>>>>>>>>>>>> of my application? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Might be asking more questions, but want to understand how >>>>>>>>>>>>>>>>> Axis2 war integrated in our actual application. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thank you so much for your patience and help.. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Mon, 7 Sep 2020, 12:02 am robertlazarski, < >>>>>>>>>>>>>>>>> robertlazar...@gmail.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Please see my comments inline: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Sun, Sep 6, 2020 at 7:54 AM Murali Challa < >>>>>>>>>>>>>>>>>> challamura...@gmail.com> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Hi Robert , >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Do we need have the Axis2 war file in websphere to use >>>>>>>>>>>>>>>>>>> Axis2 jar file in our application? >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Yes, axis2 as a web services server typically runs as a >>>>>>>>>>>>>>>>>> standard webapp ... at least if your intention is to run it >>>>>>>>>>>>>>>>>> in an app >>>>>>>>>>>>>>>>>> server like Websphere. Things like spring-boot and axis2 can >>>>>>>>>>>>>>>>>> run as a jar >>>>>>>>>>>>>>>>>> though in that case there is an embedded Tomcat. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> And also I could see something called .aar , .mar files >>>>>>>>>>>>>>>>>>> . These files also need to be added in websphere? >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Please suggest.. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> An aar file defines the web service and having one in >>>>>>>>>>>>>>>>>> your WEB-INF/services dir is the minimum requirement of a >>>>>>>>>>>>>>>>>> new axis2 >>>>>>>>>>>>>>>>>> application. There are exceptions, jaxws specifically. The >>>>>>>>>>>>>>>>>> version.aar is >>>>>>>>>>>>>>>>>> distributed by axis2 but is not required. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> A mar file is for modules. They are optional, and >>>>>>>>>>>>>>>>>> generally are for advanced use cases. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The concept of aar and mar files are further explained in >>>>>>>>>>>>>>>>>> the docs. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> https://axis.apache.org/axis2/java/core/docs/adv-userguide.html >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Robert >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Sun, 6 Sep 2020, 11:07 pm robertlazarski, < >>>>>>>>>>>>>>>>>>> robertlazar...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> We have some Websphere specific instructions here. I am >>>>>>>>>>>>>>>>>>>> not a recent Websphere user myself. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> https://axis.apache.org/axis2/java/core/docs/app_server.html >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I suggest trying the "Happy Axis" page, something like: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> http://localhost:8080/axis2/axis2-web/HappyAxis.jsp >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Axis2 uses commons-logging internally. The default is >>>>>>>>>>>>>>>>>>>> log4j, I am using log4j2 in my own Axis2 projects. I would >>>>>>>>>>>>>>>>>>>> expect at least >>>>>>>>>>>>>>>>>>>> some console output on errors. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Robert >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Sun, Sep 6, 2020 at 7:11 AM Murali Challa < >>>>>>>>>>>>>>>>>>>> challamura...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Can anyone from this group help me out please.. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> I'm debugging it from last 1 week but not getting any >>>>>>>>>>>>>>>>>>>>> clue to resolve it. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thanks & Regards, >>>>>>>>>>>>>>>>>>>>> Murali >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Sun, 6 Sep 2020, 10:38 pm Alexey Borschenko, < >>>>>>>>>>>>>>>>>>>>> aaborsche...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> No idea how it works under WebSphere. Sorry. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> On 6 Sep 2020, at 20:04, Murali Challa < >>>>>>>>>>>>>>>>>>>>>> challamura...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Thank you for your response Alexey.. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Yes.. I created the stubs with Axis2 and added >>>>>>>>>>>>>>>>>>>>>> required jars. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> But my doubt is that , any configurations we need to >>>>>>>>>>>>>>>>>>>>>> do in websphere to make my stub work? >>>>>>>>>>>>>>>>>>>>>> Or any where any to declare the stub files ? >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> When I ran the stub with a Java standalone program, >>>>>>>>>>>>>>>>>>>>>> service client is getting initialized and the specified >>>>>>>>>>>>>>>>>>>>>> service call is >>>>>>>>>>>>>>>>>>>>>> getting executed. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> But when I deployed same stub in my server, it is >>>>>>>>>>>>>>>>>>>>>> not working and no errors to debug the issue. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> So kindly help to suggest if any changes need to be >>>>>>>>>>>>>>>>>>>>>> done at app server end other than adding jars. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Thanks again for your consideration and help. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Thanks & Best Regards, >>>>>>>>>>>>>>>>>>>>>> Murali >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> On Sun, 6 Sep 2020, 10:21 pm Alexey Borschenko, < >>>>>>>>>>>>>>>>>>>>>> aaborsche...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> You have to check migration documents. There are lot >>>>>>>>>>>>>>>>>>>>>>> of changes from v1 to v2. It’s not just about placing >>>>>>>>>>>>>>>>>>>>>>> v2 JARs into >>>>>>>>>>>>>>>>>>>>>>> application. You will have to rework it a bit. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> On 6 Sep 2020, at 11:16, Murali Challa < >>>>>>>>>>>>>>>>>>>>>>> challamura...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Hi Team, >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Earlier we are using axis1 jar to consume the >>>>>>>>>>>>>>>>>>>>>>> services from one of our business applications. >>>>>>>>>>>>>>>>>>>>>>> Now the management is asking us to migrate axis1 to >>>>>>>>>>>>>>>>>>>>>>> axis2 jar. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Below are the steps that I followed to generate the >>>>>>>>>>>>>>>>>>>>>>> Service stub file. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> I have added the Axis2-1.7.8 bin folder as run time >>>>>>>>>>>>>>>>>>>>>>> in my eclipse. >>>>>>>>>>>>>>>>>>>>>>> Then Generated the Stub file with wsdl and by using >>>>>>>>>>>>>>>>>>>>>>> Axis2 webservice option in eclipse. >>>>>>>>>>>>>>>>>>>>>>> All the required axis2 jars are added to our >>>>>>>>>>>>>>>>>>>>>>> application. >>>>>>>>>>>>>>>>>>>>>>> Finally deployed our application in our webshere >>>>>>>>>>>>>>>>>>>>>>> server. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> But now we are not able access the services as >>>>>>>>>>>>>>>>>>>>>>> earlier and not getting error logs to debug the issue. >>>>>>>>>>>>>>>>>>>>>>> By adding some sysouts statements, we are guessing >>>>>>>>>>>>>>>>>>>>>>> that the flow is breaking while creating >>>>>>>>>>>>>>>>>>>>>>> *_serviceClient* object. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Kindly help to know if we are missing something. >>>>>>>>>>>>>>>>>>>>>>> Also please confirm if we need to add any >>>>>>>>>>>>>>>>>>>>>>> configurations in our webshpere >>>>>>>>>>>>>>>>>>>>>>> to use axis2 jar. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Please note that we just generated the stub file and >>>>>>>>>>>>>>>>>>>>>>> made code changes to pass the required inputs for >>>>>>>>>>>>>>>>>>>>>>> service calls. And just >>>>>>>>>>>>>>>>>>>>>>> added the required axis2 jar files. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Please help us to know if we are missing something. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Thanks & Regards, >>>>>>>>>>>>>>>>>>>>>>> Murali >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> --------------------------------------------------------------------- >>>>>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail: >>>>>>>>>>>>>>>>>>>>>>> java-user-unsubscr...@axis.apache.org For >>>>>>>>>>>>>>>>>>>>>>> additional commands, e-mail: >>>>>>>>>>>>>>>>>>>>>>> java-user-h...@axis.apache.org >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>