1

我使用 Netbeans 6.5 来生成 JAX-WS Metro 服务和 Glassfish 2.1 作为应用程序服务器。

假设我有两个 Web 服务,例如

...

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

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

我有一个 Web 服务客户端(一个 Java 应用程序),可以愉快地调用两者。

我现在希望方法 XXX 调用方法 YYY,即我需要将 YYY 的客户端代理放置在 Web 服务 XXX 内。

我该怎么做呢?

4

2 回答 2

2

您不应尝试代理请求以调用同一应用程序内的方法 - 这将导致不必要的对象序列化/反序列化到 XML 消息并返回。

如果您需要在同一个应用程序中调用另一个方法,请重新设计您的应用程序,以便您可以访问您需要调用的应用程序的任何区域。

于 2010-02-05T01:48:36.697 回答
0

我玩了一圈,弄明白了。

您不想通过代理客户端调用实际的 Web 服务,因为这样您将不必要地序列化/反序列化数据。

假设在上面的示例中,doXXX 方法位于名为 XXX 的类中,而 doYYY 方法位于名为 YYY 的类中。

(请注意,该类将由 @WebService() 标记进行注释。)

从 doXXX 方法调用 doYYY():

YYY yyy = new YYY ();  
yyy.doYYY ();
于 2010-03-03T00:06:51.613 回答