aspose file tools*
The moose likes Web Services and the fly likes one webmethod calling another inside same web service Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "one webmethod calling another inside same web service" Watch "one webmethod calling another inside same web service" New topic

one webmethod calling another inside same web service

Ram Viswanathan

Joined: Dec 08, 2008
Posts: 2

I have a webservice with one @WebMethod (say Method#1) . I have a need to add another @WebMethod (say Method #2) where I need most of the code that I had placed inside Method #1.

I have 2 ways to do this
a) Call Method#1 inside Method#2 and then proceed with additional code for Method#2
b) Move the common code into a private method and have both Method#1 and Method#2 use the common logic.

I am not comfortable using (a) because of calling one public @WebMethod from another public @WebMethod just to reuse code

Please advice if I can use (b) over (a) or any other better way of doing this

Ivan Krizsan
Ranch Hand

Joined: Oct 04, 2006
Posts: 2198
Personally, I would choose option b because:
- From just looking at the program, it is obvious that method1 and method2 has code in common.
- I feel that there is a greater risk that someone else modifies method1 without realizing it is used by method2 adn thus causing errors that may be more or less subtle if method2 calls method1.
I feel that refactoring common functionality to a private method gives a more clear signal that the code is used at multiple places.
- I would also want to avoid calling a method that is exposed in the web service from within another method that is also exposed in the web service.
I don't have a rational explanation for this, just a feeling...
Best wishes!
I agree. Here's the link:
subject: one webmethod calling another inside same web service
Similar Threads
Transaction thrown by container to client
calling javascript function from ActionScript Method
sharing connection object within methods
Using the Keyword super
@WebMethod rules