使用axis发布服务

来源:互联网 发布:mac有什么网游加速器啊 编辑:程序博客网 时间:2024/04/29 14:22

axis是Apache的一个Web Service的发布平台,它提供了两种web service 的发布方式:

1、即时发布JWS:

1、编写普通的无包结构的java文件,主要是类--方法;

2、修改编写好的java文件的后缀名为jws;

3、发布web service服务,这个主要是将编写好的jws文件放到axis项目平台中,并根据放入的文件目录来确定服务访问的地址;

4、编写客户端来对发布的服务进行测试。

下面是客户端代码的编写:

<span style="white-space:pre"></span>String url = "";    Service service = new Service();    Call call = (Call)service.createCall();    call.setTargetEndpointAddress(url);    call.setOperation("test");    String result = (String) call.invoke(new Object[]{});
注意:这里的话,即时发布我们必须要有发布java的源代码,并且不能有包结构,那么当有包结构的时候,这个时候,我们就要使用axis平台为我们提供的第二种发布方式--定制发布。

2、定制发布WSDD

定制发布要有需要发布服务的class文件或者jar文件,在发布的时候我们需要保留包的文件目录结构。

实现的步骤:

1、编写带有包结构的java代码(普通:方法的编写);

2、生成编写好java类的class文件或者jar文件;

3、将编译好的结果(包含包层次)拷贝到axis项目下的axis\web-inf\classes下;

4、使用命令在axis服务平台上注册服务(声明服务的方法)

Axis\web-inf\, 要在axis项目的这个文件下创建一个wsdd定制服务的配置文件,默认这个文件是没有的。

1、编写一个当前的项目配置文件server-config.wsdd

1、编写一个个人*.wsdd文件,描述一个web服务

<deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<service name="urn:cominfo" provider="java:RPC">

<parameter name="className" value="指明需要发布的类的绝对位置"/>

<parameter name="allowedMethods" value="方法名(*)" />

</service>

</deployment>

2、在Axis\web-inf\下面执行命令:这个是axis平台提供的生成配置文件命令,其实也就是使用到了java执行命令

java   org.apache.axis.client.AdminClient    *.wsdd    ---使用这个我们是自动的生成wsdd文件,当然我们也可以自己来写这个文件;

5、文件的结构:

AXIS

web-inf

-------server-config.wsdd      ---这个是定制发布服务的配置文件的位置

classes

-----这里放完整包路径的服务类的class文件或者jar包

6、修改server-config.wsdd文件的配置

在这个配置文件中首先是全局配置<globalConfiguration></globalConfiguration>

还有<handler>过滤器

要发布服务配置<service>等

7、取消一个服务:

1、编写取消的*.wsdd

<undeployment name="test" xmlns="http://xml.apache.org/axis/wsdd/">

<service name="要取消的服务名"/>

</undeployment>

2、执行命令

java   org.apache.axis.client.AdminClient   取消.wsdd     执行这个命令来取消服务

8、Web Service  Object的生存范围

<parameter name="scope" value="request/session/application"/>

REQUEST  :Axis为每一个SOAP的请求产生服务对象--针对请求的

Session      : 为每一个调用webService的客户端产生服务对象----针对会话,这个是针对客户端来创建服务对象的。

Application  :这个是在服务器内存中直接new一个服务对象,这个是全局的服务对象。在服务器的内存中只有一个服务对象。

0 0
原创粉丝点击