jMeter - Webservice 测试计划

创建网络服务项目

为了创建一个 webservice 项目,我们使用了 Eclipse IDE。首先编写Service Endpoint InterfaceHelloWorld 在包下 com.jc2182.ws. HelloWorld.java 的内容如下 -

package com.jc2182.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)
public interface HelloWorld {
   @WebMethod String getHelloWorldMessage(String string);
}
这个服务有一个方法 getHelloWorldMessage 它接受一个字符串参数。
接下来,创建实现类 HelloWorldImpl.java 在包裹下 com.jc2182.ws.

package com.jc2182.ws;
import javax.jws.WebService;
@WebService(endpointInterface="com.jc2182.ws.HelloWorld")
public class HelloWorldImpl  implements HelloWorld  {
   @Override
   public String getHelloWorldMessage(String myName) {
      return("Hello "+myName+" to JAX WS world");
   }
}
现在让我们通过创建端点发布者并在服务器上公开服务来在本地发布此 Web 服务。
发布方法需要两个参数 -
  • 端点 URL 字符串。
  • 实现器对象,在本例中为 HelloWorld 实现类,它在由上述参数中提到的 URL 标识的端点处公开为 Web 服务。
HelloWorldPublisher.java 的内容如下 -

package com.jc2182.endpoint;
import javax.xml.ws.Endpoint;
import com.jc2182.ws.HelloWorldImpl;
public class HelloWorldPublisher {
   public static void main(String[] args) {
      Endpoint.publish("http://localhost:9000/ws/hello", new HelloWorldImpl());
   }
}
修改 web.xml 内容,如下所示 -

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, 
   Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
   <listener>
      <listener-class>
         com.sun.xml.ws.transport.http.servlet.WSServletContextListener
      </listener-class>
   </listener>
     
   <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
     
   <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>
     
   <session-config>
      <session-timeout>120</session-timeout>
   </session-config>
     
</web-app>
要将此应用程序部署为 Web 服务,我们需要另一个配置文件 sun-jaxws.xml. 该文件的内容如下 -

<?xml version = "1.0" encoding = "UTF-8"?>
<endpoints
   xmlns = "http://java.sun.com/xml/ns/jax-ws/ri/runtime"
   version = "2.0">
   
   <endpoint name = "HelloWorld" 
      implementation = "com.jc2182.ws.HelloWorldImpl" 
      url-pattern = "/hello"/>
</endpoints>
现在所有文件都已准备就绪,目录结构将如下面的屏幕截图所示 -
WebService 目录结构
  • 现在创建此应用程序的 WAR 文件。
  • 选择项目 → 右键单击​​ → 导出 → WAR 文件。
  • 将此另存为 hello.war 下的文件 webapps Tomcat 服务器的文件夹。
  • 现在启动Tomcat服务器。
  • 服务器启动后,您应该能够使用 URL 访问 Web 服务 - http://localhost:8080/hello/hello