Axis2开发WebService服务端及客户端
分类:?系统运维
参考? http://www.ibm.com/developerworks/webservices/library/ws-apacheaxis/index.html
下载axis2-1.5.4-bin.zip文件并解压。设置axis2的环境变量 " AXIS2_HOME" 服务端 We will?generate the service components for the web service. For this we will use the standard Axis2's WSDL2Java command. We will use Axis2 Data binding Framework (ADB) as the data binding framework (you are free to choose any data binding framework which Axis2 supports). For generating the server-side components of the web service,execute the following command in the same command prompt window.? 利用 wsdl 文件生成服务端代码
WSDL2Java命令参数说明:? ? -uri? 指定*.wsdl文件,可以带具体路径;?? ? -p? 指定生成代码的包名? ? -d? 使用不同的数据绑定方法;??adb ,?xmlbeans?? ? -o? 指定生成代码放置的路径;? ? -ss 表示要生成服务端代码;?? ? -ssi 表示要生成代码中,先生成接口类,再生成实现类;? 新建web工程(服务端)? 结构如下:? 编辑web.xml加入如下代码:? ??? <servlet-name>AxisServlet</servlet-name> ??? <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> ? </servlet> ? <servlet-mapping> ??? <servlet-name>AxisServlet</servlet-name> ??? <url-pattern>/services/*</url-pattern> ? </servlet-mapping> ? 解决 java.lang.NoSuchMethodError: javax.xml.namespace.QName.<init>(Ljava/lang/String; Ljava/lang/String;Ljava/lang/String;)V 问题 <?xml?version="1.0"?encoding"UTF-8"?> 打包发布? http://localhost:8080/StockQuoteWS/services/StockQuoteService?wsdl
客户端??调用三种方法? 前两种不生成客户端代码? 但不太好用? 点击(此处)折叠或打开
利用 axis2 的wsdl2java.bat生成客户端程序
%AXIS2_HOME%bin
wsdl2java?
-uri?StockQuoteService.wsdl?
-d?adb?
-p?axis2.service.server?
-o?
client?
-u
?? 其中-uri
参数指定了wsdl
文件的路径,可以是本地路径,也可以是网络路径。-p
参数指定了生成的Java
类的包名,-o
参数指定了生成的一系列文件保存的根目录。加上可选参数?
-u Unpacks the databinding classes??避免生成的ServiceStub类特别大 在执行完上面的命令后,读者就会发现在当前目录下多了个
client
目录,
可以找到一个HelloServiceStub.java
文件,该文件复杂调用WebService
,读者可以在程序中直接使用这个类。
其中HelloServiceStub.java是客户端程序,HelloServiceCallbackHandler.java是异步客户端程序。 Axis2 客户端最少依赖包 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angular – routerLinkActive允许任何查询参数
- angularjs – 如何将父元素的指令中的数据传递给子元素?
- angularjs – 在帖子后将Restangular插入模型
- forms – 重复值的唯一约束
- 一个罕见的MySQL redo死锁问题排查及解决过程
- xmlhttprequest – AngularJS和位于不同域中的Jersey Webse
- Advanced Programming in UNIX Environment Episode 32
- bash – 匹配STDOUT中的字符串时运行进程
- bash – IDEA的终端主页/结束/ crtl箭头不起作用
- linux上搭建solr的实现方法(用jetty部署)