今天研究了下webservice 终于OK了
而在这里,我会很简单的说明,一看就懂
首先在进行webservice 一定要下载包
到
http://ws.Apache.org/axis/网站下载Axis安装包.
在本文章中,我已经把要用的包上传了,大家可以直接在这下就行了
然后就写wsdd 文件,也是最重要的.
首先我在网上看到的例子是这样的,大家可以参考下
先写deploy.wsdd
<deployment xmlns="
http://xml.apache.org/axis/wsdd/" xmlns:java="" target="_blank">
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 -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd
你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到
其实说了这多,就是为了得到一个server-config.wsdd 而我就把一个成功的server-config.wsdd 拿来改
.最后发现可以功能.如果大家为了快,也可以这样做
以下是server-config.wsdd 的代码 这个文件,是放到 WEB-INF 目录下 和web.xml一起
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="
http://xml.apache.org/axis/wsdd/" xmlns:java="
http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
</globalConfiguration>
<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
<service name="Login.jws" provider="java:RPC">
<parameter name="className" value="com.liuzm.Login"/>// 你要改的就是这.这写上要调用的类.就可以
<parameter name="scope" value="request"/>
<parameter name="allowedMethods" value="*"/> // 这*代表所有的方法
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
</requestFlow>
</transport>
</deployment>
类的代码com.liuzm.Login:
public class Login {
public String Add(){
return "liuzm";
}
}
在这我只写了一个方法
就这样 完成了
然后在web.xml 加上
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
这样差不多一个webservice 完成了
然后在IE上测试下
http://localhost:8080/mywebservices/services
如果在IE 上看到 login Add 方法 就说明成功了
也可以写个测试类调用服务器
String url = "
http://localhost:8080/mywebservices/services/Login.jws";// Service service = new Service();
Call call;
try {
call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(url) );
call.setOperationName("Add" );// 这是要调用的方法
String res = (String) call.invoke( new Object[] {} );
System.out.println(res);
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
输出结果 liuzm 也就是Add 的方法.大家可以参考下
备注一下:
如果net与你交互,把http://localhost:8080/mywebservices/services/Login.jws?wsdl 这个地址给它
他那边会自动解析的,你也可以直接输入:
http://localhost:8080/mywebservices/services/Login.jws?wsdl
测试下,如果成功就会显示xml格式的文件
如果完成了这一步,那么祝贺你成功了
Axis安装包
今天研究了下webservice 终于OK了的更多相关文章
- SQLSERVER聚集索引与非聚集索引的再次研究(下)
SQLSERVER聚集索引与非聚集索引的再次研究(下) 上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 ...
- 刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址
刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址是3台设备,分别是客户机Windows系统.核心交换机.PPPoE拨号的路由器 第一步:在PPPoE拨号的路由器上面查看ppp0拨号的地址 ifc ...
- 在这个插件帮助下,终于用上免费的Https协议外链的图床了
前天,强哥发了一篇推文,讲述了应该如何免费且快速的生成自己的博客网站: 期间也有提到一点就是我们在写博客的时候,因为使用的是Markdown格式的文件,而如果想要Markdown格式的文件在图片上传 ...
- 传统模式下WebService与WebAPI的相同与不同
1.WebService是利用HTTP管道实现了RPC的一种规范形式,放弃了对HTTP原生特征与语义的完备支持:而WebAPI是要保留HTTP原生特征与语义的同时实现RPC,但WebAPI的实现风格可 ...
- C语言下WebService的使用方式
用gSoap工具: 1.在dos环境中到gSoap工具对应的目录gsoap_2.8.18\gsoap-2.8\gsoap\bin\win32路径下,执行wsdl2h -c -o *.h ht ...
- .net 下webservice 的WebMethod的属性
WebMethod有6个属性: .Description .EnableSession .MessageName .TransactionOption .CacheDuration .BufferRe ...
- MS06-040漏洞研究(下)【转载】
课程简介 经过前两次的分析,我们已经对Netapi32.dll文件中所包含的漏洞成功地实现了利用.在系统未打补丁之前,这确实是一个非常严重的漏洞,那么打了补丁之后,这个动态链接库是不是就安全了呢?答案 ...
- 研究windows下SVN备份及还原恢复方案
windows下SVN备份方案 备份策略 svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 注意,svn备份不宜采用普通的 ...
- php下webservice使用总结
基于thinkphp3.2的 1.修改php配置 php.ini extension=php_soap.dll soap.wsdl_cache_enabled=0 2.soap有两种模式 wsdl和 ...
随机推荐
- mysql 与 mysqli的区别
mysqli.dll是PHP对mysql新特性的一个扩展支持.在PHP5中可以在php.ini中加载mysql后面的i,指improved, interface, ingenious, incompa ...
- cookie简介
上例子 1.首先要用php创建cookie发送给客户端,利用setcookie()方法即可 <?php /* * * @Authors peng--jun * @Email 1098325951 ...
- ReentrantLock(重入锁)以及公平性
ReentrantLock(重入锁)以及公平性 标签(空格分隔): java NIO 如果在绝对时间上,先对锁进行获取的请求一定被先满足,那么这个锁是公平的,反之,是不公平的,也就是说等待时间最长的线 ...
- Unix/Linux环境C编程入门教程(5) Red Hat Enterprise Linux(RHEL)环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 通过./a.out ./Y.out执行出结果,证明C++程序编译成功,也就说明li ...
- 面向对象程序设计-C++_课时13初始化列表
构造函数设置成员初值方法有两种:一种是在函数体内赋值,另一种是采用初始化列表的形式. 初始化列表BETTER 函数体内赋值 类名::类名(形参1,形参2,...形参n) { 数据成员1=形参1; 数据 ...
- Problem 2128 最长子串(kmp+strstr好题经典)
Problem 2128 最长子串 Accept: 134 Submit: 523Time Limit: 3000 mSec Memory Limit : 65536 KB Probl ...
- .net网站开发(前端):4.MVC HtmlHelper
通过前面三节,已经大概理解MVC是怎样运作的了.MVC的一个特点就是可以很方便地控制视图效果,数据交互也很灵活.先讲一下视图控制的,HtmlHelper,看到Help就知道它是不知疲惫的好人啦(有点像 ...
- C++面试题一大波
//打印1到最大的n位数. //题目:输入数字n.按顺序打印出从1到最大的n位十进制数.比方: //输入3.则打印出1.2.3一直到最大的3位数999. //[陷阱]:这个题目非常easy想到的办法就 ...
- Flash,EEPROM差别
flash是用来存储代码的,在执行过程中不能改:EEPROM是用来保存用户数据,执行过程中能够改变,比方一个时钟的闹铃时间初始化设定为12:00,后来在执行中改为6:00,这是保存在EEPROM里,不 ...
- javaScript 工作必知(七) 对象继承
对象继承inherit var o = { r: 1 }; var c = function f() { }; c.prototype = o; c.r = 3; alert(o.r);//被继承的属 ...