前戏:
其实有很多方式可以发布Webservice,我试验成功的有xfire和Axis,本来对xfire情有独钟的,无奈xfire的jar包太多,随便数了下有40多个,与我原项目中的多数jar包相冲突,并且有的版本和名称都不一样,手动挑选可能会发生些不可预计的错误,于是我转用Axis.
无论用哪种方式开发,或者开发什么,首先你都得到其官网下载它的包.我下的是最新的axis-bin-1_4.tar.gz,找到它里面的lib文件夹,它包括这几个jar包.
这里面共有8个jar包,往往log4j-1.2.8.jar和commons-logging-1.0.4.jar与原工程中的包会产生冲突,所以我们可只导入其余6个jar包.
接下来我们在我们项目中书写将要被调用的类.
这个类的意图是为了将来客户端访问的时候,在客户端传入一个字符串参数,在服务端响应后返回一串字符串.
这个类书写完成后,将其改名为Hello.jws,将你的项目发布后,假设你的Hello.jws不在任何包中,浏览器的地址栏输入: http://172.20.108.211:8080/axis/Hello.jws?wsdl 即可看到你想要发布服务的wsdl文件.
然后为了客户端能够方便调用,还需要写两个文件
在WEB-INF目录下创建deploy.wsdd,内容如下
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Hello" provider="java:RPC">
<parameter name="className" value="Hello"/>
<param eter name="allowedMethods" value="showKeyword"/>
</service>
</deployment>
相信大家应该看得很明白了,<parameter name="className" value="Hello"/>代表我要发布的服务的类名是什么,第二句showKeyword代码客户端可以调用我哪个方法.
这个文件完了还要书写一个server-config.wsdd文件,这文件可以手写生成,也可以让系统自动生成
当项目发布后,打开DOS窗口,进入到deploy.wsdd文件所在目录,假如你的应用服务器是Tomcat,打入如下语句
D:\jakarta-tomcat-5.0.28\webapps\axis\WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
系统会自动生成server-config.wsdd文件,内容就不贴了,太长了.
这里有个细节要注意的,-Djava.ext.dirs=lib 这句的意思是所有jar文件要从你项目中寻找,这里我们还需要导入两个jar文件activation.jar和mail.jar.这两个文件在我们下载的官方包中是没有的,好像1.4版本前的包有这两个jar文件,导入到你程序中就可以了.
至此服务端的开发基本完成,接下来就是客户端了
客户端也导入之前所说的一些包,其实服务端很简单,可以写个类来调用刚才服务端发布的服务
例如你可以写
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://172.20.108.211:8080/axis/Hello?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName("showHi") ;
String res = (String) call.invoke( new Object[] {"mymymy"} );
System.out.println( res );
}
}
这个类最重要的就是那串URL地址,我们可以通过这个URL地址来调用不同服务端发布的服务.
其实由此已经可见一斑了,客户端往往调用的都是比我们这个例子复杂得多的逻辑,我们可以将这些逻辑在服务端写好,return出客户端所需要的就可以了.
分享到:
相关推荐
比较简单的SOAP Axis三种发布、调用方式简单的实例,代码和文档都在,不包含AXIS包,需要自行下载。
axis发布webservice教程axis发布webservice教程axis发布webservice教程axis发布webservice教程
本案例实现使用Axis2生成.arr包发布WebService服务,并使用Axis2生成客户端代码方式调用WebService
借鉴网上的资源,弄了一个SpringBoot开发WebService之Axis示例。
spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码
此压缩包不仅仅只有文档,还有axis1.4相关资源。详细描述了如何在tomacat6.0下发布webService,并以此为基础,进一步重点描述了如何在Weblogic10.3下发布webService。网上多半描述的是Weblogic8.1版本,而很少有关...
eclipse使用axis1.4发布联通vac的webservice服务代码,并有客户端测试
本人精心总结的axis发布webservice的详细步骤,以实例的形式讲解,希望可以帮到更多人(精心总结,绝非抄袭)
使用Axis2搭建_WebService
使用axis发布webservice服务,客户端 服务端均有 本地测试通过。
使用axis手动编写webservice服务发布,并调用。 使用wsdl2java命令 ---------注意导入axis jar包
web service 使用 axis2 框架使用的插件 必不可少的
NULL 博文链接:https://sakajiaofu.iteye.com/blog/1199570
发布成webservice使用到的包 博文链接:https://nidexuanzecjy.iteye.com/blog/580386
axis2发布webservice的详细介绍文档
使用Axis发补调用服务。对于初学者用帮助!
Axis1发布webservice服务,demo项目,已包含所需的jar包等各种文件,下载导入即可启动运行,有问题的欢迎咨询哈
axis1实现webservice所需jar包 activation.jar axis-ant.jar axis.jar commons-discovery-0.2.jar commons-logging-1.0.4.jar jaxrpc.jar log4j-1.2.8.jar mail.jar saaj.jar wsdl4j-1.5.1.jar xalan.jar ...
axis2发布webservice,随着普通web工程发布;本示例简单明了,代码注释中附有发布步骤,导入工程即可运行,无须下载任何jar包。 工程中也有调用发布后接口的代码执行main方法即可
axis和axis2的一些发布差异(WSDL2Java) 收藏axis和axis2的一些发布差异(WSDL2Java) 收藏axis和axis2的一些发布差异(WSDL2Java) 收藏axis和axis2的一些发布差异(WSDL2Java) 收藏