- 浏览: 189929 次
- 性别:
- 来自: 上海
文章分类
最新评论
Java SE 6封装了JAX-WS(Java API for XML-Web Services),而JAX-WS同时支持基于SOAP的Web服务和REST风格的Web服务。JAX-WS通常可简写为JWS,当前,JWS的版本为2.x。
基于SOAP的Web服务可用单个Java类的实现,但是最好是用“接口+实现”的方式来实现最佳。
Web服务的接口称为SEI,即Service Endpoint Interface;
而Web服务的实现称为SIB,即Service Implementation Bean。
SIB可以是一个POJO,也可以是无状态的会话EJB。本文的SIB是普通Java类,通过JDK 6的类库即可实现Web服务的发布。
在JAX-WS中,Web Service操作调用表现为以XML为基础的协议如SOAP协议。SOAP定义了封装架构,编码规则以及Web Service中调用和回应表现的规则。这些调用和回应在HTTP基础上以SOAP规范的消息进行传递。
尽管SOAP协议是很复杂的,但是JAX-WS隐藏了开发人员面对的复杂性。在服务器端,开发者可以通过在使用java语言接口中定义方法来制定Web Service。开发者可以编写一个或者多个类来实现这些方法。客户端程序也很容易编写。客户端会创建一个代理(表现服务器端的本地对象)并且简单的调用代理中的方法即可。在JAX-WS中,开发者不必去创建和解析SOAP消息。JAX-WS运行系统会自动完成调用和回应之间SAOP消息的转换。
使用JAX-WS,客户端和服务器端都有一个很大的优势:java编程语言的平台独立性。此外,JAX-WS并不限制:JAX-WS客户端程序可以访问不运行在java平台上的Web Servicce。这种灵活性是由于Web Service采用了W3C定义的技术规范:Http,SOAP,WSDL。
以上摘自http://blog.csdn.net/qiudawei115/article/details/1916994
JAXWS适合几乎所有Webservice客户端的调用,因此不少巨头型的厂商如:IBM,Weblogic等,在他们的产品上都使用了以JAXWS为标准的Webservice接口。
Webservice进行总结、比较,最终觉得jaxws是目前最标准,需要额外第三方插件最少,配置最少最灵活的webservice。
JAX-WS (Java API for XML Web Services) 是一组专门用于实现 XML Web Services 的 Java API。JDK 1.6 自带 JAX-WS 版本为 2.1。不过,JAX-WS 只提供 web services 的基础功能,所以如果你希望实现 web services 的复杂功能,比如 WS-Security,WS-Policy,WS-RM 等,那就需要切换到 Apache CXF 、Metro 或者 Axis。
可以采用以下两种方法之一开发 Web 服务:
契约优先:从 WSDL 契约着手,生成 Java 类来实现服务。
代码优先:从 Java 类着手,使用 Annotation 来生成 WSDL 文件和 Java 接口。
wsimport
wsimport是在JDK的bin目录下的一个exe文件(Windows版),主要 功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生成调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。
命令参数说明:
-d 生成客户端执行类的class文件的存放目录
-s 生成客户端执行类的源文件的存放目录
-p 定义生成类的包名
-keep 是否保留源文件
二种生成方式:
wsimport -keep -d ./bin -s ./src -p com.test.ws http: //localhost:8088/hellowservice?wsdl
wsimport -keep -d ./bin -s ./src -p com.test.ws ./wsdl/HellowService.wsdl
wsgen
wsgen是在JDK的bin目录下的一个exe文件(Windows版),该命令的主要功能是用来生成合适的JAX-WS。它读取Web Service的终端类文件,同时生成所有用于发布Web Service所依赖的源代码文件和经过编译过的二进制类文件。这里要特别说明的是,通常在Web Service Bean中用到的异常类会另外生成一个描述Bean,如果Web Service Bean中的方法有申明抛出异常,这一步是必需的,否则服务器无法绑定该对像。此外,wsgen还能辅助生成WSDL和相关的xsd文件。wsgen从资源文件生成一个完整的操作列表并验证web service是否合法,可以完整发布。
命令参数说明:
-cp 定义classpath
-r 生成 bean的wsdl文件的存放目录
-s 生成发布Web Service的源代码文件的存放目录(如果方法有抛出异常,则会生成该异常的描述类源文件)
-d 生成发布Web Service的编译过的二进制类文件的存放目录(该异常的描述类的class文件)
范例:
计入项目目录:新建wsdl文件夹
执行命令
wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl server.PlusImpl
即可生成wsdl文件与xsd文件
要想将服务部署到web容器中,如tomcat
则需要 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="calculator" implementation="test.CalculatorImpl"
url-pattern="/calculator" />
</endpoints>
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>calculator</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>calculator</servlet-name>
<url-pattern>/calculator</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>120</session-timeout>
</session-config>
</web-app>
注意:需要下载相应的依赖包
http://jax-ws.java.net
service的函数名不能与类名称相同,否则生成相同文件名会被覆盖 ,导致报错
基于SOAP的Web服务可用单个Java类的实现,但是最好是用“接口+实现”的方式来实现最佳。
Web服务的接口称为SEI,即Service Endpoint Interface;
而Web服务的实现称为SIB,即Service Implementation Bean。
SIB可以是一个POJO,也可以是无状态的会话EJB。本文的SIB是普通Java类,通过JDK 6的类库即可实现Web服务的发布。
在JAX-WS中,Web Service操作调用表现为以XML为基础的协议如SOAP协议。SOAP定义了封装架构,编码规则以及Web Service中调用和回应表现的规则。这些调用和回应在HTTP基础上以SOAP规范的消息进行传递。
尽管SOAP协议是很复杂的,但是JAX-WS隐藏了开发人员面对的复杂性。在服务器端,开发者可以通过在使用java语言接口中定义方法来制定Web Service。开发者可以编写一个或者多个类来实现这些方法。客户端程序也很容易编写。客户端会创建一个代理(表现服务器端的本地对象)并且简单的调用代理中的方法即可。在JAX-WS中,开发者不必去创建和解析SOAP消息。JAX-WS运行系统会自动完成调用和回应之间SAOP消息的转换。
使用JAX-WS,客户端和服务器端都有一个很大的优势:java编程语言的平台独立性。此外,JAX-WS并不限制:JAX-WS客户端程序可以访问不运行在java平台上的Web Servicce。这种灵活性是由于Web Service采用了W3C定义的技术规范:Http,SOAP,WSDL。
以上摘自http://blog.csdn.net/qiudawei115/article/details/1916994
JAXWS适合几乎所有Webservice客户端的调用,因此不少巨头型的厂商如:IBM,Weblogic等,在他们的产品上都使用了以JAXWS为标准的Webservice接口。
Webservice进行总结、比较,最终觉得jaxws是目前最标准,需要额外第三方插件最少,配置最少最灵活的webservice。
JAX-WS (Java API for XML Web Services) 是一组专门用于实现 XML Web Services 的 Java API。JDK 1.6 自带 JAX-WS 版本为 2.1。不过,JAX-WS 只提供 web services 的基础功能,所以如果你希望实现 web services 的复杂功能,比如 WS-Security,WS-Policy,WS-RM 等,那就需要切换到 Apache CXF 、Metro 或者 Axis。
可以采用以下两种方法之一开发 Web 服务:
契约优先:从 WSDL 契约着手,生成 Java 类来实现服务。
代码优先:从 Java 类着手,使用 Annotation 来生成 WSDL 文件和 Java 接口。
wsimport
wsimport是在JDK的bin目录下的一个exe文件(Windows版),主要 功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生成调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。
命令参数说明:
-d 生成客户端执行类的class文件的存放目录
-s 生成客户端执行类的源文件的存放目录
-p 定义生成类的包名
-keep 是否保留源文件
二种生成方式:
wsimport -keep -d ./bin -s ./src -p com.test.ws http: //localhost:8088/hellowservice?wsdl
wsimport -keep -d ./bin -s ./src -p com.test.ws ./wsdl/HellowService.wsdl
wsgen
wsgen是在JDK的bin目录下的一个exe文件(Windows版),该命令的主要功能是用来生成合适的JAX-WS。它读取Web Service的终端类文件,同时生成所有用于发布Web Service所依赖的源代码文件和经过编译过的二进制类文件。这里要特别说明的是,通常在Web Service Bean中用到的异常类会另外生成一个描述Bean,如果Web Service Bean中的方法有申明抛出异常,这一步是必需的,否则服务器无法绑定该对像。此外,wsgen还能辅助生成WSDL和相关的xsd文件。wsgen从资源文件生成一个完整的操作列表并验证web service是否合法,可以完整发布。
命令参数说明:
-cp 定义classpath
-r 生成 bean的wsdl文件的存放目录
-s 生成发布Web Service的源代码文件的存放目录(如果方法有抛出异常,则会生成该异常的描述类源文件)
-d 生成发布Web Service的编译过的二进制类文件的存放目录(该异常的描述类的class文件)
范例:
计入项目目录:新建wsdl文件夹
执行命令
wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl server.PlusImpl
即可生成wsdl文件与xsd文件
要想将服务部署到web容器中,如tomcat
则需要 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="calculator" implementation="test.CalculatorImpl"
url-pattern="/calculator" />
</endpoints>
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>calculator</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>calculator</servlet-name>
<url-pattern>/calculator</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>120</session-timeout>
</session-config>
</web-app>
注意:需要下载相应的依赖包
http://jax-ws.java.net
service的函数名不能与类名称相同,否则生成相同文件名会被覆盖 ,导致报错
发表评论
文章已被作者锁定,不允许评论。
-
TIME_WAIT、CLOSE_WAIT、
2017-08-23 14:36 516netstat -n | awk '/^tcp/ {++S[$ ... -
ActiveMQ的集群多种部署方式
2016-08-15 16:56 679ActiveMQ的多种部署方式 ... -
http协议三次握手
2016-03-11 10:57 335TCP(Transmission Control Protoc ... -
dubbo 与zookeeper
2016-01-15 09:53 830详见 http://dubbo.io/ http:/ ... -
get post 误区
2015-04-10 10:52 477众所周知的http请求有两种: get与post: 这两种 ... -
java jdk 原生http请求工具类
2015-01-26 14:48 782import java.io.BufferedReader; ... -
通信协议概览
2015-01-26 11:07 398在分布式服务框架中, ... -
Hessian 分布式?
2015-01-26 12:03 1235Hessian 是由 caucho 提供的 ... -
http client 方式调用webservice
2015-01-21 10:47 810对于初学者而言,拼装soap请求报文似乎不是很简单的事情,但这 ... -
Xfire 笔记
2015-01-20 16:29 562mark,待补充 -
访问webservice的几种方式
2015-01-20 16:25 716Web service一般就是用SOAP协议通过HTTP来调用 ... -
axis2
2015-01-15 10:31 342一 sts axis2 方式 生成webservice b ... -
webservice
2015-01-14 12:58 636WebService是一种跨编程语 ...
相关推荐
Java API for XML Web Services(JAX-WS)是Java平台上用于构建和消费Web服务的标准API。它简化了创建和使用Web服务的过程,使得开发者能够通过SOAP消息与远程服务进行交互。JAX-WS允许开发者将服务接口直接映射到...
使用JAX-WS(JWS)发布WebService 使用myeclipse开发java的webservice的两种方式 方式一: (此方式只能作为调试,有以下bug:jdk1.6u17?以下编译器不支持以Endpoint.publish方式发布document方式的soap,必须在...
这些接口包括`javax.jws.WebService`注解,用于标记服务端点,以及`javax.xml.ws.Service`,用于客户端消费Web服务。 2. **webservices-extra.jar** - 此文件可能包含JAX-WS的一些扩展或额外功能,如WS-I(Web ...
JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和消费Web服务。本篇将深入讲解如何基于JAX-WS开发一个WebService实例。 首先,让我们了解JAX-WS的基本概念。JAX-WS提供了一种简单的方式...
Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于构建和部署Web服务。它简化了Web服务的开发,使得Java开发者能够更方便地创建、调用和部署SOAP(Simple Object Access Protocol)服务。在这个...
Java API for XML Web Services (JAX-WS) 是Java平台上用于构建Web服务和客户端的API。这个"jax-ws WebService客户端与服务端工程.rar"压缩包文件包含了一个完整的示例,展示了如何使用JAX-WS创建和消费Web服务。让...
**JAX-WS使用教程** Java API for XML Web Services (JAX-WS) 是Java平台上的标准组件,用于创建和消费Web服务。它允许开发者利用面向服务架构(SOA)来构建分布式应用程序。本教程将深入讲解JAX-WS的核心概念、...
**JAX-WS实现Web Service发布的详解** JAX-WS(Java API for XML Web Services)是Java平台上用于创建Web服务的标准API,它简化了Web服务的开发、部署和消费过程。JAX-WS允许开发者使用Java语言来定义和实现Web服务...
Java Architecture for XML Binding (JAX-WS) 是Java平台上的一个标准组件,用于处理Web服务。它提供了在Java应用程序和Web服务之间交换XML数据的能力。JAX-WS允许开发者创建符合WS-I Basic Profile的Web服务,确保...
**Jax-WS详解与配置指南** Jax-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和消费Web服务。它提供了一种基于SOAP(Simple Object Access Protocol)的、类型安全的方式来处理Web服务。...
### JAX-WS技术概述 JAX-WS(Java API for XML-Based Web Services)是一种用于开发基于SOAP的Java Web服务的基础技术。它为创建、部署和消费Web服务提供了丰富的工具和框架支持。JAX-WS的目标是简化Web服务的开发...
**JAX-WS模仿天气预报发布** JAX-WS(Java API for XML Web Services)是Java平台上用于构建和消费Web服务的标准API。它允许开发者创建符合WS-I(Web Services Interoperability Organization)基本Profile的SOAP...
本篇文章将深入探讨如何使用JAX-WS(Java API for XML Web Services)在JAVA6环境中开发Web服务。JAX-WS是Java平台上的一个核心API,用于构建和消费Web服务,它简化了SOAP(Simple Object Access Protocol)消息处理...
Java API for XML Web Services (JAX-WS) 是一种用于创建 ...参阅:https://examples.javacodegeeks.com/enterprise-java/jws/jax-ws-tutorial-beginners/ Maven 项目来演示如何创建、部署、使用和测试 JAX-WS Web 服务
### JAX-WS 开发 Web 服务 #### JAX-WS 概述 JAX-WS(Java API for XML Web Services)是Java平台上的标准Web服务API,它为开发人员提供了一种简单的方法来创建和消费Web服务。JAX-WS支持消息导向以及RPC导向的Web...
### JAX-WS:Java API for XML Web Services #### 概述 JAX-WS(Java API for XML Web Services)是Java平台上的一个标准技术,用于实现基于XML的消息传递及远程过程调用(RPC)风格的Web服务。通过JAX-WS,开发者...
### JAX-WS WebService开发详解 #### 一、开发环境 为了进行JAX-WS WebService的开发,本文档采用以下开发环境配置: - **操作系统**:Windows XP - **IDE**:MyEclipse 10 - **Web服务器**:Tomcat 7 - **Java版本...
play-jax-ws 使用 Play Framework 公开您的 JAX-WS SOAP 服务。 例子 请参阅example-scala和example-java 。 设置 build.sbt添加到您的build.sbt文件中: resolvers += "Koofr Github repo" at ...
在Java世界中,JAX-WS(Java API for XML Web Services)是用于创建和消费Web服务的标准API,它取代了早期的JAX-RPC。本教程将详细介绍如何使用JAX-WS实现服务端和客户端的Web服务。 ### 1. JAX-WS简介 JAX-WS是...
JAX-WS(Java API for XML Web Services)是Java平台上用于构建Web服务的标准API,它使得开发基于SOAP(Simple Object Access Protocol)的Web服务和客户端应用程序变得更加简单。本示例程序将详细介绍如何利用JAX-...