【发布时间】:2010-12-28 06:41:42
【问题描述】:
我是 web 服务的新手,我想在我的 eclipse 项目中使用 java 来实现 web 服务。
谁能告诉我如何实施和创建一个项目
谢谢
【问题讨论】:
标签: java web-services webservice-client
我是 web 服务的新手,我想在我的 eclipse 项目中使用 java 来实现 web 服务。
谁能告诉我如何实施和创建一个项目
谢谢
【问题讨论】:
标签: java web-services webservice-client
W3C 定义的 Web 服务是一个支持可互操作的机器对机器交互的软件系统 通过网络。更详细地说,一个系统使用来自其他软件系统的服务。
Web 服务有两大类:
要实现网络服务,需要根据自己的需求选择一个类别。 Java 有一堆 APIS 来实现这两个类别的 Web 服务。
实施网络服务前的要求是:
与其他类别相比,基于 REST 的实现有点容易。所以最好从 REST 投诉 Web 服务入手。
网络服务的工作原理:
WS 作为请求-响应范例,有一个实体会向它的特定对应方请求某些服务,即服务提供者实体。根据请求,服务提供商将使用响应消息进行响应。所以有两条消息涉及听到一条请求消息(XML)和一条响应消息(XML)。有很多方法可以实现这些。详情可见web service architecture
初学者可以从JERSEYjsr311标准参考实现开始构建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();
}
}
【讨论】:
Webservice 是一些程序接口,它使用 SOAP 协议进行通信。使用soap,您可以与任何程序进行通信,无论它是用哪种语言编写的。
SOAP 是一种基于 XML 的通信协议和编码格式,用于应用程序间的通信。它最初由 Microsoft 和 Userland 软件构思,经过几代的演变;当前规范是版本 SOAP 1.2,尽管版本 1.1 更为广泛。 W3C 的 XML 协议工作组负责该规范。 SOAP 被广泛视为新一代跨平台跨语言分布式计算应用程序(称为 Web 服务)的支柱。
这里有一些例子:
【讨论】:
最简单和最好的方法之一是使用 Apache Axis 开发 Web 服务。 Eclipse SOA 工具包支持 Axis。
有关示例项目的更多信息可以在这里找到!
【讨论】: