You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by de...@novartis.com on 2006/08/08 20:01:38 UTC

Re: Cannot work with Axis2 - URGENT - A quick list of lessons learnt

Preface
I have a simple application which does nothing more than Insert, Update, 
Delete, Select from the Oracle database.
Its a J2EE application where

Front End : Struts 1.2, JSP etc.

Middle Layer - Business Delegates, Service Locator, Value objects etc.

Data Access Layer - iBATIS

The application is deployed in Tomcat 5 and I use myeclipse to build my 
applications.

My Requirement - Axis2 comes into play
 
My new requirement is to build a web services layer on top of this 
application. So that all those magic Selects, Inserts, Updates and Deletes 
can be done via other interfaces.
Hence I chose to use Axis2 to accomplish the task.

My attempt

I am new to Axis2 and web services.

I wanted to use a select, and write a simple servlet to invoke this web 
service. This is what I did.

1. I had wrote the wsdl file manually. 

2. I am using the nightly build of 08/07/2006. I am seeing some email 
about broken build. But I am not facing any problem.
        - First doubt was, which jars to use, one from bin-min or bin-std. 
I decided to use the 24 jars inside bin-min.

3. First mistake done and a major one. Do not use the eclipse plug-in tool for code generation. Use the commandline tool 
that is packaged inside the nightly build. Thanks Dims for the information 
(don't know how many times I am going to thank this guy)

4. Update the My*Skeleton code to call my delegate which in turn calls the 
iBATIS layer (my DAO classes) to get the information from the database. 
Convert the object to one for the return type.

5. I export the java project from eclipse as a jar file and rename it to 
.aar. Short, simple and works for dev purposes. Next mistake made here - 
Never put the axis2 distribution jar files inside the .aar file. Put them 
in the WEB-INF/lib. This is also identified and prompted by Dims. Thanks 
again.

6. So now, where do I put my iBATIS jars and log4j jars (there could be 
more). Create a directory "lib" inside the .aar and place them inside it. 
Basically I created a folder "lib" at the root of my eclipse java project 
and placed all these jars in there.

7. Now deploy this .aar in Axis2. Check out the services to confirm all is 
golden.

8. Now I took the same wsdl file as if I am a client and have no 
whereabouts of the webservice. Now I want to write a servlet in my webapp, 
one in my world, who knows nothing of the above. First I generated only 
the client code using the WSDL2Java commandline tool and this wsdl file. 
Yes, I am writing an axis2 client. This created just one My*Stub.java. All 
other required classes are created as inner classes. How can I make the 
tool create separate java files rather than all these inner classes?

9. Now from the servlet I call this stub and the method and hope to get a 
response. This took me 2 days and I could have done nothing without Dims 
who removed the major road blocks (you were great! Thanks again!!!).

10. When you are returning an object, then make sure to populate all the 
fields of the object. I was asking Dims, whether there is any default rule 
in Axis2. Well, I think we should take care of this in the middle layer 
business logic, and the onus should not be on Axis2.

11. In my application, I had all my iBATIS and other config xml and 
properties under a xml folder and they were placed in the .aar 
accordingly. But the regular release has a classpath issue because of 
which it fails to find and load the properties. This was also pointed out 
by Dims and he fixed it and was available in the nightly build. Thanks 
again.

12. So, make sure you are using the nightly build if you have a similar 
structure as mine, Make sure you run the wsdl2java again (don't mix and 
match old generated code with new jars or vice versa).
Make sure you thoroughly check all the jars that are in your environment. 
It's very easy to mix jars and not know about it - These are all words 
from Dims, I am putting it here again. Thanks!.

Hope it helps and again big thanks for the apache group and especially 
Dims.

Thanks
Debasish

___________________________________________________
Debasish Dutta Roy
NITAS
Ph: 617-871-3033

_________________________

CONFIDENTIALITY NOTICE

The information contained in this e-mail message is intended only for the 
exclusive use of the individual or entity named above and may contain 
information that is privileged, confidential or exempt from disclosure 
under applicable law. If the reader of this message is not the intended 
recipient, or the employee or agent responsible for delivery of the 
message to the intended recipient, you are hereby notified that any 
dissemination, distribution or copying of this communication is strictly 
prohibited. If you have received this communication in error, please 
notify the sender immediately by e-mail and delete the material from any 
computer.  Thank you.

Re: Cannot work with Axis2 - URGENT - A quick list of lessons learnt

Posted by Martin Gainty <mg...@hotmail.com>.
This is a great step by step approach that I am sure every developer will require
The concise readme.txt as it now stands has something like 'include these jars'
I vote to include this step by step approach into the readme.txt for all future versions of AXIS 2_1

Many Thanks for your input!

Martin --
*********************************************************************
This email message and any files transmitted with it contain confidential
information intended only for the person(s) to whom this email message is
addressed.  If you have received this email message in error, please notify
the sender immediately by telephone or email and destroy the original
message without making a copy.  Thank you.



  ----- Original Message ----- 
  From: debasish.duttaroy@novartis.com 
  To: axis-user@ws.apache.org 
  Sent: Tuesday, August 08, 2006 2:01 PM
  Subject: Re: Cannot work with Axis2 - URGENT - A quick list of lessons learnt



  Preface 
  I have a simple application which does nothing more than Insert, Update, Delete, Select from the Oracle database. 
  Its a J2EE application where 

  Front End : Struts 1.2, JSP etc. 

  Middle Layer - Business Delegates, Service Locator, Value objects etc. 

  Data Access Layer - iBATIS 

  The application is deployed in Tomcat 5 and I use myeclipse to build my applications. 

  My Requirement - Axis2 comes into play 
    
  My new requirement is to build a web services layer on top of this application. So that all those magic Selects, Inserts, Updates and Deletes can be done via other interfaces. 
  Hence I chose to use Axis2 to accomplish the task. 

  My attempt 

  I am new to Axis2 and web services. 

  I wanted to use a select, and write a simple servlet to invoke this web service. This is what I did. 

  1. I had wrote the wsdl file manually. 

  2. I am using the nightly build of 08/07/2006. I am seeing some email about broken build. But I am not facing any problem. 
          - First doubt was, which jars to use, one from bin-min or bin-std. I decided to use the 24 jars inside bin-min. 

  3. First mistake done and a major one. Do not use the eclipse plug-in tool for code generation. Use the commandline tool that is packaged inside the nightly build. Thanks Dims for the information (don't know how many times I am going to thank this guy) 

  4. Update the My*Skeleton code to call my delegate which in turn calls the iBATIS layer (my DAO classes) to get the information from the database. Convert the object to one for the return type. 

  5. I export the java project from eclipse as a jar file and rename it to .aar. Short, simple and works for dev purposes. Next mistake made here - Never put the axis2 distribution jar files inside the .aar file. Put them in the WEB-INF/lib. This is also identified and prompted by Dims. Thanks again. 

  6. So now, where do I put my iBATIS jars and log4j jars (there could be more). Create a directory "lib" inside the .aar and place them inside it. Basically I created a folder "lib" at the root of my eclipse java project and placed all these jars in there. 

  7. Now deploy this .aar in Axis2. Check out the services to confirm all is golden. 

  8. Now I took the same wsdl file as if I am a client and have no whereabouts of the webservice. Now I want to write a servlet in my webapp, one in my world, who knows nothing of the above. First I generated only the client code using the WSDL2Java commandline tool and this wsdl file. Yes, I am writing an axis2 client. This created just one My*Stub.java. All other required classes are created as inner classes. How can I make the tool create separate java files rather than all these inner classes? 

  9. Now from the servlet I call this stub and the method and hope to get a response. This took me 2 days and I could have done nothing without Dims who removed the major road blocks (you were great! Thanks again!!!). 

  10. When you are returning an object, then make sure to populate all the fields of the object. I was asking Dims, whether there is any default rule in Axis2. Well, I think we should take care of this in the middle layer business logic, and the onus should not be on Axis2. 

  11. In my application, I had all my iBATIS and other config xml and properties under a xml folder and they were placed in the .aar accordingly. But the regular release has a classpath issue because of which it fails to find and load the properties. This was also pointed out by Dims and he fixed it and was available in the nightly build. Thanks again. 

  12. So, make sure you are using the nightly build if you have a similar structure as mine, Make sure you run the wsdl2java again (don't mix and match old generated code with new jars or vice versa).
  Make sure you thoroughly check all the jars that are in your environment. It's very easy to mix jars and not know about it - These are all words from Dims, I am putting it here again. Thanks!. 

  Hope it helps and again big thanks for the apache group and especially Dims. 

  Thanks 
  Debasish 

  ___________________________________________________
  Debasish Dutta Roy
  NITAS
  Ph: 617-871-3033 

  _________________________

  CONFIDENTIALITY NOTICE

  The information contained in this e-mail message is intended only for the exclusive use of the individual or entity named above and may contain information that is privileged, confidential or exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, or the employee or agent responsible for delivery of the message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by e-mail and delete the material from any computer.  Thank you.

Re: Cannot work with Axis2 - URGENT - A quick list of lessons learnt

Posted by Davanum Srinivas <da...@gmail.com>.
You are welcome!

-- dims

On 8/8/06, debasish.duttaroy@novartis.com
<de...@novartis.com> wrote:
>
> Preface
> I have a simple application which does nothing more than Insert, Update,
> Delete, Select from the Oracle database.
> Its a J2EE application where
>
> Front End : Struts 1.2, JSP etc.
>
> Middle Layer - Business Delegates, Service Locator, Value objects etc.
>
> Data Access Layer - iBATIS
>
> The application is deployed in Tomcat 5 and I use myeclipse to build my
> applications.
>
> My Requirement - Axis2 comes into play
>
> My new requirement is to build a web services layer on top of this
> application. So that all those magic Selects, Inserts, Updates and Deletes
> can be done via other interfaces.
> Hence I chose to use Axis2 to accomplish the task.
>
> My attempt
>
> I am new to Axis2 and web services.
>
> I wanted to use a select, and write a simple servlet to invoke this web
> service. This is what I did.
>
> 1. I had wrote the wsdl file manually.
>
> 2. I am using the nightly build of 08/07/2006. I am seeing some email about
> broken build. But I am not facing any problem.
>         - First doubt was, which jars to use, one from bin-min or bin-std. I
> decided to use the 24 jars inside bin-min.
>
> 3. First mistake done and a major one. Do not use the eclipse plug-in tool
> for code generation. Use the commandline tool that is packaged inside the
> nightly build. Thanks Dims for the information (don't know how many times I
> am going to thank this guy)
>
> 4. Update the My*Skeleton code to call my delegate which in turn calls the
> iBATIS layer (my DAO classes) to get the information from the database.
> Convert the object to one for the return type.
>
> 5. I export the java project from eclipse as a jar file and rename it to
> .aar. Short, simple and works for dev purposes. Next mistake made here -
> Never put the axis2 distribution jar files inside the .aar file. Put them in
> the WEB-INF/lib. This is also identified and prompted by Dims. Thanks again.
>
> 6. So now, where do I put my iBATIS jars and log4j jars (there could be
> more). Create a directory "lib" inside the .aar and place them inside it.
> Basically I created a folder "lib" at the root of my eclipse java project
> and placed all these jars in there.
>
> 7. Now deploy this .aar in Axis2. Check out the services to confirm all is
> golden.
>
> 8. Now I took the same wsdl file as if I am a client and have no whereabouts
> of the webservice. Now I want to write a servlet in my webapp, one in my
> world, who knows nothing of the above. First I generated only the client
> code using the WSDL2Java commandline tool and this wsdl file. Yes, I am
> writing an axis2 client. This created just one My*Stub.java. All other
> required classes are created as inner classes. How can I make the tool
> create separate java files rather than all these inner classes?
>
> 9. Now from the servlet I call this stub and the method and hope to get a
> response. This took me 2 days and I could have done nothing without Dims who
> removed the major road blocks (you were great! Thanks again!!!).
>
> 10. When you are returning an object, then make sure to populate all the
> fields of the object. I was asking Dims, whether there is any default rule
> in Axis2. Well, I think we should take care of this in the middle layer
> business logic, and the onus should not be on Axis2.
>
> 11. In my application, I had all my iBATIS and other config xml and
> properties under a xml folder and they were placed in the .aar accordingly.
> But the regular release has a classpath issue because of which it fails to
> find and load the properties. This was also pointed out by Dims and he fixed
> it and was available in the nightly build. Thanks again.
>
> 12. So, make sure you are using the nightly build if you have a similar
> structure as mine, Make sure you run the wsdl2java again (don't mix and
> match old generated code with new jars or vice versa).
>  Make sure you thoroughly check all the jars that are in your environment.
> It's very easy to mix jars and not know about it - These are all words from
> Dims, I am putting it here again. Thanks!.
>
> Hope it helps and again big thanks for the apache group and especially Dims.
>
> Thanks
> Debasish
>
>  ___________________________________________________
>  Debasish Dutta Roy
>  NITAS
>  Ph: 617-871-3033
>
>  _________________________
>
>  CONFIDENTIALITY NOTICE
>
>  The information contained in this e-mail message is intended only for the
> exclusive use of the individual or entity named above and may contain
> information that is privileged, confidential or exempt from disclosure under
> applicable law. If the reader of this message is not the intended recipient,
> or the employee or agent responsible for delivery of the message to the
> intended recipient, you are hereby notified that any dissemination,
> distribution or copying of this communication is strictly prohibited. If you
> have received this communication in error, please notify the sender
> immediately by e-mail and delete the material from any computer.  Thank you.
>


-- 
Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Cannot work with Axis2 - URGENT - A quick list of lessons learnt

Posted by Eran Chinthaka <ch...@opensource.lk>.
couple of comments.

debasish.duttaroy@novartis.com wrote:
> 
> 
> 
> 8. Now I took the same wsdl file as if I am a client and have no
> whereabouts of the webservice. Now I want to write a servlet in my
> webapp, one in my world, who knows nothing of the above. First I
> generated only the client code using the WSDL2Java commandline tool and
> this wsdl file. Yes, I am writing an axis2 client. This created just one
> My*Stub.java. All other required classes are created as inner classes.
> How can I make the tool create separate java files rather than all these
> inner classes?

Did u try -u option, whilst calling wsdl2java?

> 10. When you are returning an object, then make sure to populate all the
> fields of the object. 

This is only if your fields are non-nillable. You could have easily
avoided populating all the fields by making the optional ones marked as
nilable in your schema.

-- Chinthaka