加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在axis中通过wsdd文件发布和卸载webservice【图文】

发布时间:2020-12-17 01:17:01 所属栏目:安全 来源:网络整理
导读:一、使用wsdd发布web服务: ? 新建java工程TestAxis,新建mypack, 服务端代码: package mypack; public class HelloService { ? public String sayHello(String username) { ??? return "Hello:"+username; ? } } 将服务端的class文件放到axis/web-inf/cla

一、使用wsdd发布web服务:

?

新建java工程TestAxis,新建mypack,

服务端代码:

package mypack;

public class HelloService {

? public String sayHello(String username) {

??? return "Hello:"+username;
? }

}

将服务端的class文件放到axis/web-inf/classes下(包括包的整体结构)

新建部署文件deploy.wsdd:

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="helloservice" provider="java:RPC">
<parameter name="className" value="mypack.HelloService"/>
<parameter name="allowedMethods" value="sayHello"/>
<parameter name="scope" value="Request"/>
</service>
</deployment>

将部署文件放到Tomcat 5.0/webapps/axis/WEB-INF目录下,

运行——cmd——进入部署文件所在目录,如图:

运行命令:java ?-Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd

如果成功则会显示 : <Admin>Done?processing</Admin>?

下面来解释AdminClient 所做的工作。AdminClient 首先会在axis.jar所在应用下的WEB-INF文件夹下创建一个webservice配置文件server-config.wsdd,并且根据wsdd文件的配置将我们的webservice加入到这个配置文件中。如果server-config.wsdd已经存在则不会创建,会修改这个文件将新的service 配置到server-config.wsdd文件中。
现在打开server-config.wsdd发现我们的服务已经配置在里面了:

在TestAxis工程的mypack下新建客户端文件,并把必须的jar包引入,


客户端代码:

package mypack;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;

public class HelloClient
{
?? public static void main(String [] args) {
?????? try {
??????????? String username="Guest";
?? ???? if(args.length!=0) username=args[0];
??????????
?????????? String endpoint =
??????????????????? "
http://localhost:8080/axis/services/helloservice";
????
?????????? Service? service = new Service();
?????????? Call???? call??? = (Call) service.createCall();

?????????? call.setTargetEndpointAddress( new java.net.URL(endpoint) );
?????????? call.setOperationName(new QName("urn:helloservice","sayHello") );
?????????? String ret = (String) call.invoke( new Object[] { username} );

?????????? System.out.println(ret);
?????? } catch (Exception e) {
?????????? e.printStackTrace();
?????? }
?? }
}
运行代码试一下,看是否能打印出结果吧。

?

二、使用wsdd文件卸载web服务

?

前面已经使用wsdd文件成功的发布了web服务,下面的卸载也就很简单了

我们首先定义一个undeploy.wsdd:

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

将部署文件放到Tomcat 5.0/webapps/axis/WEB-INF目录下,

运行——cmd——进入部署文件所在目录,如图:

运行命令:java ?-Djava.ext.dirs=lib org.apache.axis.client.AdminClient undeploy.wsdd

如果成功则会显示 : <Admin>Done?processing</Admin>

现在打开server-config.wsdd文件之前配置的helloworld服务已经不在了,卸载成功!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读