来自java桌面应用程序的Web服务

时间:2011-08-14 13:00:50

标签: java eclipse web-services desktop-application

我正在尝试使用桌面应用程序中的Web服务,我使用here中的教程并使此代码连接到Web服务服务器项目

public static void main(String[] args) {

    float f1 = 60.5F;
    float c1 = 0;
    ConverterProxy s = new ConverterProxy();

    try {
        c1 = s.farenheitToCelsius(f1);
    } catch (RemoteException e) {
        e.printStackTrace();
    }

    System.out.println("Output: " + c1);

}

它做了工作,我需要一些解释其他客户端类所做的事情

我需要知道什么是类

转换器,ConverterProxy,ConverterService,ConverterServiceLocator,ConverterSoapBindingStub

我们需要它们吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

这是一个猜测,因为我没有使用你的教程,但很多这些类都遵循类似的模式。

Converter很可能是一个接口,它定义了服务将提供的方法。

ConverterProxy很可能是Converter接口的客户端暴露。它实际上并没有完成工作,而是采用Converter中的方法并将它们打包以进行网络传输。

ConverterService可能是Converter接口的服务器端暴露。它从ConverterProxy调用中获取网络包,解压缩它们,执行转换,并将回复发送回网络连接另一端的ConverterProxy。然后,ConverterProxy将解压缩网络消息,取出结果,并将其作为答案返回。

ConverterServiceLocator可能是一个关注查找ConverterService所需代码的类。有时为了保持一定程度的灵活性,ConverterService的位置在编译时没有指定,并且ConverterServices告诉中央注册表(通常是UDDI)它们启动时的位置。然后ConverterServiceLocator(当您尝试使用ConverterProxy绑定到ConverterService时)查询中央注册表,并提供合适的ConverterService的位置或直接提供ConverterService(我不记得它是否提取服务的你)。

ConverterSoapBindingStub是一个类,它提供(以其他方式隐藏的)Java到SOAP XML编组/解组,用于转换ConverterProxy请求以转换为XML请求,并且ConverterProxy回复转换为XML回复。

同样,我无法访问您的源代码或您的教程(我现在没有时间查看它);但是,这些都是基于非常常见的命名惯例的有根据的猜测。

答案 1 :(得分:0)

你可以查看代码,但它有点神秘。主要的是,您生成了一个将Web服务包装为Java对象的类。然后,该服务的操作成为该类中的方法。您可以使用它与您找到的Web服务进行交互。

其余的类处理Java类和Web服务之间的管道。他们将您提供的参数转换为SOAP(XML方言)请求,将其发送到Web服务,他们还会收到SOAP响应并将其转换回您的Java程序可以理解的数据。

就像第一个使用方法/操作包装Web服务行为的生成类一样,其他类包装用于调用Web服务的管道/通信协议。