欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Axis手册------发布服务 应用服务器JavaWebApacheSOAP 

程序员文章站 2022-07-03 13:59:53
...
总结起来,Axis有两种方式发布服务:

1.JWS文件。适合比较简单的服务,它是运行期编译的,所以需要源码。不适合大型应用。

2.使用AdminClient工具利用wsdd发布。

生成WSDL的方式也有两种:

1.直接在服务的url后面加"?wdsl"

2.使用Java2WSDL工具。

然后开发一个web服务的方式也有好多种,选择哪一种就要看个人喜好了。
不过我还是推荐下面的模式:
1. 编写服务接口,一个java接口--------------->2.使用Java2WSDL生成wsdl文件。---------------- ------>3.使用WSDL2Java生成服务端/客户端 绑定。 4.修改生成的Impl --java代码的内容,完成服务。搞定收工。

以前我们已经介绍了前两种方式,我们这里主要谈谈使用Java2WSDL的使用。
Java2WSDL,和WSDL2Java是两个方便开发web 服务的工具。下面的文章主要描述了如何从一个java接口创建一个web 服务。

第一步:提供一个java接口,或者是类。

首先,编写一个描述web服务的java接口(或者是类),例如:

package samples.userguide.example6;

/**
* Interface describing a web service to set and get Widget prices.
**/
public interface WidgetPrice {
public void setWidgetPrice(String widgetName, String price);
public String getWidgetPrice(String widgetName);
}

第二步:

使用Java2WSDL工具从上面的接口创建一个wsdl文件:

% java org.apache.axis.wsdl.Java2WSDL -o wp.wsdl
  -l"http://localhost:8080/axis/services/WidgetPrice"
  -n  "urn:Example6" -p"samples.userguide.example6" "urn:Example6"
  samples.userguide.example6.WidgetPrice

其中:

1.-o 指出输出wsdl文件的名字。

2.-l  指出这个服务的地址.

3.-n 目标wsdl文件的namespace。

4-p  指出java包到namespace的映射。可以有多个映射。

5.描述web服务的java的接口或者是类。

输出的WSDL文档将包含了相应的Wsdl: types,messages,portType,binding,和支持SOAP rpc的服务描述,编码 web服务。如果你的提供的接口方法使用了其他类的引用,Java2WSDL会生成相应的xml type来描述这个类,包括其中的内隐类和嵌套的所以的类。这个工具支持JAX-RPC复杂的类型(bean),arrays,enumeration, Holder类,继承等。

第三步:使用WSDL2Java创建绑定。
使用上面生成的wsdl文件去创建对应的服务端/客户端的绑定到web服务上。

% java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true
  -Nurn:Example6 samples.userguide.example6 wp.wsdl

将会创建一下文件:

    * WidgetPriceSoapBindingImpl.java : 这个是服务的实现,也就是我们接口的实现类。你可以通过修改这个类完成服务的实现。
    *
    * WidgetPrice.java: 新的接口文件,包含相应的 java.rmi.Remote .
    * WidgetPriceService.java: java文件,客户端的服务接口。
    * WidgetPriceServiceLocator.java: java文件,客户端的服务实现。
    * WidgetPriceSoapBindingSkeleton.java: 服务端 skeleton.
    * WidgetPriceSoapBindingStub.java:客户端 stub.
    * deploy.wsdd: 发布描述
    * undeploy.wsdd:  解除发布
    * (data types): 文件,是web服务必须的其他的type和holders。本例子并没有用的。

至此,你知道要开发一个服务器/客户端的所有的文件了。