开发者

Can a web service call another web service in the same application server

I'm using Netbeans 6.5 to generate the JAX-WS Metro service and Glassfish 2.1 as the application server.

Assume I have two web services e.g.

...

@WebMethod(operationName = "doXXX")
public String doXXX(
@WebParam(name = "id") String id
...    

...
@WebMethod(operationName = "doYYY")
public String doYYY(
@WebParam(name = "result") String result
... 

and I have a Web Service client (a Java application) tha开发者_运维技巧t happily calls both.

I now want method XXX to call method YYY i.e. I need to place the client proxy for YYY inside of web service XXX.

How do I do this?


You shouldn't attempt to proxy a request to invoke a method inside the same application - this will incur needless serialization/deserialization of Objects to XML messages and back.

If you need to call another method inside the same application, re-design your application so that you can gain access to whatever area of the application you need to invoke.


I played around and figured it out.

You don't want to call the actual web service via a proxy client because then you will needlessly serialize / deserialize the data.

Assume in the example above, that the doXXX method is inside a class called XXX and that the doYYY method is inside a class called YYY.

(Note that the class would be annotated by a @WebService() tag.)

To call doYYY() from the doXXX method:

YYY yyy = new YYY ();  
yyy.doYYY ();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜