Web服务如何工作?

时间:2010-12-28 06:41:43

标签: java web-services webservice-client

我是Web服务的新手,我想在我的eclipse项目中使用java来实现Web服务。

所以任何人都可以告诉我如何实施和创建项目

由于

3 个答案:

答案 0 :(得分:8)

正如W3C所定义的,Web服务是一个支持可互操作的机器到机器交互的软件系统 通过网络。更精细的是,系统消耗来自其他软件系统的服务。

Web服务有两大类:

  • 符合REST
  • 任意网络服务

要实现Web服务,需要根据他/她的要求选择一个类别。 Java有一堆APIS来实现这两个类别的Web服务。

实施Web服务之前的要求是:

  • XML
  • WSDL(网络服务描述语言)
  • SOAP协议等

基于REST与其他类别相比,易于实现。因此,最好从REST投诉Web服务开始。

网络服务如何运作:

WS作为请求 - 响应范例,有一个实体将向它的特定对应方即服务提供方实体请求某种服务。根据请求,服务提供商将回复响应消息。因此,有两个消息涉及一个请求消息(XML)和一个响应消息(XML)。有很多方法可以实现这些目标。详细信息可在web service architecture

找到

初学者可以从JERSEY jsr311标准参考实现开始构建RESTful Web服务。

示例(特定于运动衫):

第一步:创建根资源

// The Java class will be hosted at the URI path "/helloworld"
   @Path("/helloworld")
   public class HelloWorldResource {

       @GET 
       @Produces("text/plain")
      public String getClichedMessage() {
          return "Hello World";
      }
  }

第二步:部署

public class Main {

  private static URI getBaseURI() {
      return UriBuilder.fromUri("http://localhost/").port(8080).build();
  }

  public static final URI BASE_URI = getBaseURI();

  protected static HttpServer startServer() throws IOException {
      System.out.println("Starting ...");
      ResourceConfig resourceConfig = new PackagesResourceConfig("com.sun.jersey.samples.helloworld.resources");
      return GrizzlyServerFactory.createHttpServer(BASE_URI, resourceConfig);
  }

  public static void main(String[] args) throws IOException {
      HttpServer httpServer = startServer();
      System.out.println(String.format("Jersey app started with WADL available at "
              + "%sapplication.wadl\nTry out %shelloworld\nHit enter to stop it...",
              BASE_URI, BASE_URI));
      System.in.read();
      httpServer.stop();
  }    

}

REST REFERENCE - by Roy T . Fielding

答案 1 :(得分:2)

Webservice是一些程序接口,它使用SOAP协议进行通信。使用soap,无论使用哪种语言,都可以与任何程序进行通信。

  

SOAP是一种基于XML的通信协议和编码格式,用于应用程序间通信。最初由Microsoft和Userland软件构思,它已经发展了几代;当前的规范是版本,SOAP 1.2,虽然版本1.1更广泛。 W3C的XML协议工作组负责规范。   SOAP被广泛视为新一代跨平台跨语言分布式计算应用程序的骨干,称为Web服务。

以下是一些例子:

Java web services tutorial

Axis - One of ASF implementations

CXF (Previously known as "XFire")

答案 2 :(得分:0)

最简单和最好的方法之一是使用Apache Axis开发Web服务。 Eclipse SOA工具包支持Axis。

有关示例项目的更多信息,请点击此处!

http://onjava.com/pub/a/onjava/2002/06/05/axis.html