设为首页 加入收藏

TOP

通向架构师的道路(第十天)之 Axis2 Web Service(一)(二)
2018-02-08 09:56:58 】 浏览:741
Tags:通向 架构 师的 道路 Axis2 Web Service
rvlet</display-name> <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>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet> <display-name>Apache-Axis Admin Servlet Web Admin</display-name> <servlet-name>AxisAdminServlet</servlet-name> <servlet-class>org.apache.axis2.transport.http.AxisAdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AxisAdminServlet</servlet-name> <url-pattern>/axis2-admin/*</url-pattern> </servlet-mapping>

3.3 布署Web Service

在Tomcat的webapps目录下建立一个目录叫Axis2Service的目录

然后将整个工程的WebContent目录下的所有东西,全拷贝入这个目录内,启动tomcat。

启动后访问:http://localhost:8080/Axis2Service/axis2-web/

单点:Services这个链接

再点这个HelloWorld链接

 

我们就可以得到我们的HelloWorld这个WebService的wsdl内容了。

四、四种不同的HelloWorld客户端

Axis2支持4种类型的客户端:

  • Block(阻塞式客户端)

传统客户端

  • Non block(非阻塞式客户端)

又被称为异步客户端,传统客户端被调用后将会被阻塞直到操作完成。这种方式在有很多Web Service需要在一个单一的客户端应用程序中启动时很不可取。一种解决方法是使用Non-Blocking API来调用这些Web Services。Axis2提供给用户一种基于回叫机制的non-blocking API。

  • 双工(双向传输)

以上的机制都使用单一的连接去发送请求和接收响应.这都明显在性能上落后于使用两条连接(单向或双向)进行进行请求和响应的传输 . 因此以上的机制都不能解决长时间运行的交易, 连接将在操作还没完成就会超时. 一种解决方案是使用分开的两条传输连接来传输请求和响应 . 我们叫这种方案为传输层异步。

  • 双工非阻塞(双向且非阻塞传输)

下面我们就来看这四个客户端(此处对于双工传输的客户端代码进行忽略,因为这个写法很简单,我们将着重于描述双工+非阻塞的客户端例子,网上目前几乎没有能够在axis21.4下真正能够运行的“双工且非阻塞”的例子或者是完整代码)。

4.1 传统的客户端HelloWorldWithReturnClient.java

package org.sky.axis2.helloworld;

import java.util.Iterator;
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.soap.SOAPBody;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.databinding.utils.BeanUtil;
import org.apache.axis2.engine.DefaultObjectSupplier;

public class HelloWorldWithReturnClient {

         private static EndpointReference targetEPR = new EndpointReference(

                           "http://localhost:8080/Axis2Service/services/HelloWorld");

         public void sayHello() {

                   Options options = new Options();

                   options.setAction("urn:sayHello");

                   options.setTo(targetEPR);

                   ServiceClient sender = null;

                   try {

                            sender = new ServiceClient();
                            sender.setOptions(options);
                            OMFactory fac = OMAbstractFactory.ge
首页 上一页 1 2 3 4 5 6 下一页 尾页 2/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇通向架构师的道路(第九天)之 we.. 下一篇通向架构师的道路(第八天)之 we..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目