View Source

从2.2.0版本开始,venus可以配置基于Http协议的服务,使用也是相当简单的,除了需要配置前面的服务以外,还需要在 web.xml中配置一个 servlet,跟servelt-mapping

好,我们开始简单的venus http servlet的配置之旅:

h3. 配置项目依赖,在自己的pom.xml中增加下面依赖
{code:lang=xml} <dependency>
<groupId>com.meidusa.venus</groupId>
<artifactId>venus-http-backend</artifactId>
<version>${venus.version}</version>
</dependency>{code}

h3. 配置WEB应用,在web.xml中增加下面片段

* 配置Venus Servlet
{code:lang=xml} <servlet>
<servlet-name>venus</servlet-name>
<servlet-class>com.meidusa.venus.backend.http.VenusHttpServlet</servlet-class>
<load-on-startup>2</load-on-startup>
<init-param>
<param-name>uri-pattern</param-name>

<!--
可以将用URI=/services/HelloService/getHello
匹配以后,得到:
serviceName=HelloService
endpoint=getHello

uri前缀不包含 servlet contextPath,请与 servlet-mapping保持一致
-->
<param-value>/services/([a-zA-Z_0-9.]+)/([a-zA-Z_0-9]+)</param-value>
</init-param>
</servlet>{code}

* 配置Venus Servlet-mapping
{code:lang=xml} <servlet-mapping>
<servlet-name>venus</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>{code}


h3. 如何使用?[^venus-http-adaptor-3.2.16-distribution.zip]

# venus可通过http get, http post方式发送service 请求
# 简单的参数可以通过get方式发起请求
# 复杂的参数对象则需要通过post方式发送一个json对象来表达请求参数

下面是一个HelloService例子:

h3. HTTP协议适配器

面向测试团队使用的友好工具,Venus 协议的HTTP适配器,该适配器提供HTTP协议,后端采用VenusClient 连接后端Venus

# 适配器下载地址:&nbsp;[^venus-http-adaptor-3.2.16-distribution.zip]
# 配置JAVA_HOME环境变量指向JDK安装路径
# 解压zip包,修改application.properties,修改&nbsp;venus.service.ipAddressList &nbsp;= 127.0.0.1:16800 指向相关IP
# 启动 Linux:bin/launcher , windows:bin/launcher.bat

h3. 性能相关的配置,如下配置只需要修改application.properties
{code}# 接受缓冲区大小(KB)
venus.socket.receiveBufferSize = 64
# 发送缓冲区大小(KB)
venus.socket.sendBufferSize = 64

# 默认的超时时间:5秒(一次服务调用等待服务器端返回的最大时间)
venus.socket.soTimeout = 5000

# 与后端服务最大的活动连接数,默认100个
venus.pool.maxActive = 100

# 与后端服务的最大空闲连接数,默认100个
venus.pool.maxIdle = 100{code}

启动以后将会提供 默认8080端口的Http服务,可以用浏览器访问:[http://127.0.0.1:8080/services/HelloService/getHello?v=0&name=jack|http://127.0.0.1:8080/services/HelloService/getHello?v=0&name=jack]&nbsp;

复杂参数请采用 post 方式以JSON数据格式进行提交。如下图:

(有返回对象的消息格式)
!图片1.png|border=1!

(有异常返回的消息格式,具体异常code代码请参阅portal的异常编码表,180开头则为venus内部框架的代码)
!图片2.png|border=1!