Axis提供的两种服务发布方式
来源:互联网 发布:python 性能测试框架 编辑:程序博客网 时间:2024/06/05 10:43
1. 使用即时发布 Java Web Service(JWS)
对即时发布的支持是Axis的特色之一,使用即时发布使用户只需有提供服务的Java类的源代码,即可将其迅速发布成Web服务。每当用户调用这类服务的时候,Axis会自动进行编译,即使服务器重启了也不必对其做任何处理,使用非常简单快捷。
使用即时发布首先需要一个实现服务功能的Java源文件,将其扩展名改为.jws(Java Web Service的缩写),然后将该文件放到“……/webapps/axis”目录下即可。 在此给出一个HelloWorld程序,其源码如下:
HelloWorld.java
public class HelloWorld { public String sayHello() { return "HELLO WORLD!"; } }
将其放到“……/webapps/axis”目录,通过访问http://localhost:8080/axis/HelloWorld.jws?wsdl可以看到这个服务的WSDL描述文件,这说明HelloWorld服务被成功发布了。现在写个客户端程序访问一下:
TestClient.java
import org.apache.axis.client.Call; import org.apache.axis.client.Service;
import javax.xml.rpc.ParameterMode;
public class TestClient {
public static void main(String [] args) throws Exception {
String endpoint = "http://localhost:" +"8080"+ "/axis/HelloWorld.jws";//指明服务所在位置
Service service = new Service(); //创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall();//创建Call实例,也是必须的!
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置
call.setOperationName( "sayHello" );/注意方法名与HelloWorld.java中一样!!
String res = (String) call.invoke( new Object[] {} );//返回String,没有传入参数
System.out.println( res );
}
}
下面我们介绍第二种发布方式,这是常用的。
我们的第二种发布方式: 1、将HelloWorld.java编译成HelloWorld.class,放到%TOMCAT_HOME%/webapps/axis/WEB-INF/classes 下
2、在%TOMCAT_HOME%/webapps/axis/WEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件
deploy.wsdd
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="HelloWorld" provider="java:RPC"> <parameter name="className" value="HelloWorld"/> <parameter name="allowedMethods" value="sayHello"/> </service> </deployment>
在DOS下转换目录到%TOMCAT_HOME%/webapps/axis/WEB-INF,命令: java org.apache.axis.client.AdminClient deploy.wsdd 后会出现
Processing file deploy.wsdd <Admin>Done processing</Admin>
这时你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/services/HelloWorld?wsdl,你就会看到你的服务已发布
同样用客户端程序访问一下:(注意和上边的差别!!)
HelloClient.java
import org.apache.axis.client.Call; import org.apache.axis.client.Service;
public class HelloClient { public static void main(String [] args) throws Exception {
String endpoint = "http://localhost:" +"8080"+ "/axis/services/HelloWorld";//注意!差别仅仅在这里!!
Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName("sayHello" );
String res = (String) call.invoke( new Object[] {} );
System.out.println( res ); } }
- Axis提供的两种服务发布方式
- Axis提供的两种服务发布方式
- 使用Axis的wsdd描述方式发布Web服务
- axis发布webservice的服务
- 网络层提供的两种服务
- 网络层提供的两种服务
- 使用Axis发布简单的Web服务
- axis发布web服务的问题解决
- 使用Axis发布简单的Web服务
- 使用axis发布服务
- axis 发布 websrvice 服务
- OSGI提供服务的三种方式
- axis服务的get方式访问
- 发布Axis的webservice服务 调用webservice服务
- 服务器提供服务的方式
- iOS 两种发布应用的方式
- 网络层—网络层提供的两种服务
- spring集成axis 发布服务
- Hadoop 本地源码开发环境搭建
- LVM操作在HP-UX和AIX上的区别
- sap mail express
- VMware如何装VMware-Tools
- 两个窗口之间的传值--传单个值
- Axis提供的两种服务发布方式
- 硬盘组成与分割的复习
- Java操作XML文件 dom 篇
- Use "dd" to create different size files 1B,1K,10K,100K,1M,10M,100M,1G etc
- C++之虚函数小解
- 学习转:完善压力测试 避免系统崩溃恶果
- Filezilla中文乱码问题
- XAMPP不能正常启动Apache的解决方案
- MS08067