采用axis创建web service
1.安装axis,下载axis,将saaj.jar,jaxrpc.jar,axis.jar,commons-discovery-0.2.jar,
commons-logging-api.jar,log4j-1.2.8.jar,wsdl4j-1.5.1.jar,activation.jar,
mailapi.jar文件复制到tomcat的common\lib下,并加到classpath中
2.编写webservice服务
public class smsServer {
public int Send(Message msg)
{
...
}
public Message[] Recv()
{
...
}
public SendState[] CheckSate(String SubmitIDs)
{
...
}
}
3.编写wsdd发布
先编写wsdd文件,然后执行java org.apache.axis.client.AdminClient -lhttp://localhost:8080/SXDL_SMS/services/AdminService deploy.wsdd发布生成server-config.wsdd文件
4.生成wsdl
java org.apache.axis.wsdl.Java2WSDL -oWebsms.wsdl -lhttp://localhost:8080/SXDL_SMS/services/ -nWebsms zxsms.webservice.smsServer
5.生成客户端文件
java org.apache.axis.wsdl.WSDL2Java Websms.wsdl -p zxsms.webclient
6.客户端注册自定义结构,由于我采用的是自定义接口,因此客户端需要注册示例如下
public int send(zxsms.webclient.Message msg) throws java.rmi.RemoteException {
if (super.cachedEndpoint == null) {
throw new org.apache.axis.NoEndPointException();
}
org.apache.axis.client.Call _call = createCall();
javax.xml.namespace.QName qn=new javax.xml.namespace.QName("MessageBean", "MessageBean");
_call.registerTypeMapping(Message.class, qn,
new org.apache.axis.encoding.ser.BeanSerializerFactory(Message.class, qn),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(Message.class, qn));
_call.setOperation(_operations[0]);
_call.setUseSOAPAction(true);
_call.setSOAPActionURI("");
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
_call.setOperationName(new javax.xml.namespace.QName("Websms", "Send"));
setRequestHeaders(_call);
setAttachments(_call);
try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {msg});
if (_resp instanceof java.rmi.RemoteException) {
throw (java.rmi.RemoteException)_resp;
}
else {
extractAttachments(_call);
try {
return ((java.lang.Integer) _resp).intValue();
} catch (java.lang.Exception _exception) {
return ((java.lang.Integer) org.apache.axis.utils.JavaUtils.convert(_resp, int.class)).intValue();
}
}
} catch (org.apache.axis.AxisFault axisFaultException) {
throw axisFaultException;
}
}
其中下列代码是手工添加的
javax.xml.namespace.QName qn=new javax.xml.namespace.QName("MessageBean", "MessageBean");
_call.registerTypeMapping(Message.class, qn,
new org.apache.axis.encoding.ser.BeanSerializerFactory(Message.class, qn),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(Message.class, qn));
javax.xml.namespace.QName qn=new javax.xml.namespace.QName("SendStateBean", "SendStateBean");
_call.registerTypeMapping(SendState.class, qn,
new org.apache.axis.encoding.ser.BeanSerializerFactory(SendState.class, qn),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(SendState.class, qn));
7.客户端测试
public static void main(String[] args) {
try{
SmsServerService service = new SmsServerServiceLocator();
SmsServer_PortType smsclient = service.getsmsServer();
//身份认证
((org.apache.axis.client.Stub)smsclient).setUsername("001");
((org.apache.axis.client.Stub)smsclient).setPassword("001");
Message sms=new Message();
sms.setTo("13001430090");
sms.setContent("zyg webservice 短信 测试");
sms.setFormat(15);
long id=smsclient.send(sms);
System.out.println("submitid="+id);
} catch (Exception e) {
System.err.println("Execution failed. Exception: " + e);
}
}
分享到:
相关推荐
本文将详细介绍如何使用Apache Axis创建Web Service,并将重点介绍三种不同的方法:动态调用接口(Dynamic Invocation Interface,DII)、Stubs方式和动态代理(Dynamic Proxy)方式。 #### 二、环境搭建与配置 在...
【Apache Axis2 创建 Web Service 知识点详解】 Apache Axis2 是一个强大的 Web Service 框架,由 Apache 软件基金会开发,主要用于构建和部署高性能、高效率的 Web Services。它基于 Java 语言,提供了全面的 Web ...
2. **创建Web Service**:对着`HelloWorld`类右键选择`Web Services > Create Web Service`,配置运行时为Axis2,服务器为之前创建的Server,按照提示完成操作。 **验证服务** 1. **查看服务状态**:访问`...
而Apache Axis是Java平台上的一个开源工具,专门用于创建和部署Web Service。本篇将详细介绍如何使用Axis来实现Web Service的客户端调用。 首先,我们需要理解Web Service的基本概念。Web Service基于SOAP(简单...
AXIS 是 Apache 开源项目提供的一款强大的 Web Service 引擎,用于开发和部署 Web Service。在本文中,我们将深入探讨如何使用 AXIS 在 Tomcat 6.0.26 上进行配置,并详细介绍三种部署和调用 Web Service 的方法:...
本教程将引导你快速入门,掌握使用Axis2创建Web服务的基本步骤。 **一、了解Axis2** Axis2是Axis1的下一代产品,它提供了更强大的功能和更高的性能。Axis2基于模块化架构,支持多种传输协议(如HTTP、HTTPS、SMTP...
【Axis2 Web Service 开发教程】是一份详细指导开发者如何使用Apache Axis2框架创建和部署Web服务的教学资料。Apache Axis2是Java世界中一个强大的Web服务引擎,它提供了高效的性能和灵活的架构,使得Web服务的开发...
**Apache Axis** 是一个用于构建 Web Service 的开源框架,提供了简单易用的方式来创建和部署 Web Service。Axis 支持多种版本,其中 Axis1.x 和 Axis2.x 最为常见,Axis1.x 相较之下更加稳定。 - **下载所需组件**...
接下来,我们来看一个具体的示例,演示如何使用Axis创建一个简单的Web Service。 1. **定义服务接口**:首先定义一个简单的Java类`SayHello`,该类包含一个方法`getName`用于返回问候语。 ```java package ...
本文将详细介绍如何在Eclipse开发环境中创建基于Axis2的Web Service客户端。Axis2是Apache组织下的一个开源项目,它提供了一种用于构建服务端和服务客户端的高性能、完全可扩展的框架。对于希望在Java平台上开发和...
(熬夜做成,希望多多看看,有一处错误,把单词wapper改为webapps,敬请原谅) 目录大纲: ...三、 Web Service 客户端的创建。 3.1 创建WSDL文件。 3.2 利用WSDL创建stub。 3.3 利用stub类测试服务。
##### 3.1 创建Web服务 1. **定义服务接口**: ```java public class HelloClient { public String getName(String name) { return "hello " + name; } } ``` 这里定义了一个简单的`HelloClient`类,其中...
1. 创建Web服务:你可以使用AXIS提供的wsdl2java工具,根据WSDL(Web服务描述语言)文件自动生成Java源代码。这将为你提供一个服务接口和服务实现模板。 2. 实现服务:在生成的服务实现类中添加业务逻辑,使Web服务...
- 需要安装Axis2的自动代码生成插件,以便在Eclipse中创建Web服务。 - 创建一个新的Java项目,如`HelloWorld`,并在项目中定义一个包`cn.xupt.edu.soa`,以及一个名为`HelloWorld`的类,该类包含一个方法`sayHello...
【标题】: "Axis开发Web Service程序教程" 【描述】: "本文旨在引导读者通过AXIS框架体验Web服务的开发流程,适合已有Web服务基础的Java、XML开发者学习。" 【标签】: "axis webservice soap java" 【内容】: ...
通过集成Axis2 Service Archiver插件,开发者可以直接在MyEclipse环境中创建和发布基于Axis2的Web服务,而无需离开IDE去处理复杂的命令行操作或手动配置。 描述中提到的使用方法非常直观:将解压后的Axis2_Service_...