采用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);
}
}
分享到:
相关推荐
Axis2创建web service快速入门
通过该实验将掌握配置MyEclipse7.0的axis Web Service的开发环境,通过Top-Down方式创建、发布基于axis Web Service的基本步骤,进一步加深学生对XML、WSDL、SOAP等Web Service概念的理解。
(熬夜做成,希望多多看看,有一处错误,把单词wapper改为webapps,敬请原谅) 目录大纲: ...三、 Web Service 客户端的创建。 3.1 创建WSDL文件。 3.2 利用WSDL创建stub。 3.3 利用stub类测试服务。
Axis2创建WebService,有详尽介绍,还有附图,本人进行过测试,可以使用
helios创建Web Service服务
Axis+MyEclipse6.0+Tomcat5.0开发Web Service实例总结
Spring Web Service是Spring社区基于Spring提供的一个关注于创建”文档驱动”的Web Service的模块, 它的主要目标是方便基于”契约优先”(Contract-First)的SOAP服务的开发. 好像没有多少人讨论, 大多数的话题都是...
3. 创建web工程 1). 建立一个 JavaProject 命名为 ws ,将 axis2 用户库加入到 build path 中。 2). 现在开始编写要发布的 WebSevice ,在 src 中建包 briup ,建立 Hello 类如下 Package pkg.service; public ...
使用axis和CXF实现web service的说明文档。
1. axis2-1.1.1.rar中包含工程中所需的axis2的类包。 2. axis2.war是打包好的web应用。用于放在Tomcat中,当运行Tomcat后会自动解压。...具体的部署步骤和使用请参照《(原创)用Eclipse + Axis2+Tomcat创建Web Service》
1. axis2-1.1.1.rar中包含工程中所需的axis2的类包。 2. axis2.war是打包好的web应用。用于放在Tomcat中,当运行Tomcat后会自动解压。...具体的部署步骤和使用请参照《(原创)用Eclipse + Axis2+Tomcat创建Web Service》
这是最好的手把手教会你怎么去创建web service应用
Axis2创建WebService实例所需要的bin压缩包和war压缩包
Woden项目是Apache Web Services项目演化而来的一个子项目,主要用来开发用于读/写、操作、创建WSDL文档的Java类库,在初始阶段支持WSDL2.0,但是随着开发的继续,将会支持各种版本的WSDL。 Woden主要包含了两部分...
c# JSON返回格式的WEB SERVICE//www.jb51.net/article/16768.htm我这里是利用axis创建类包的,首先下载axis的压缩包,然后解压,把axis放到webapp下面。如果可以运行,就OK了。 c#创建的webservice自带的wsdl的,...
Web Service作为SOA(Service Oriented Architecture)的最好实现...介绍了Web服务框架以及支撑Web服务的WSDL、SOAP、Axis2和JUDDI等相关理论知识,通过设计与实现一个例子来阐述Web服务创建、发布、查找和调用的整个过程.
3. 编写Web service程序 10 3.1. Axis2的简单WebService示例 10 3.1.1. 0配置POJO的Webservice 10 3.1.2. 用axis2的辅助工具发布、调用WebService 12 3.1.3. WebService会话Session的管理 24 3.1.4. 用Spring创建的...
在TOMCAT-HOME/webapps/axis下创建MyMath.jws文件
一:首先创建个WEB工程,然后: http://ws.Apache.org/axis/网站下载Axis安装包.当然还依赖其他包的,我这里在附件里上传了所有应用到得包,方便大家。 二:然后写wsdd 文件(注:其实这里真的不用,可以跳过第...