Java1.6中自带了JAX-WS API,使得我们可以很方便、简单的开发一个基于Java的WebService应用。下面看一个JAX-WS中的HelloWord应用。
一、创建WebService Endpoint接口
首先我们来定义Server端的WebService服务接口,如下:
package test;
import javax.jws.WebService;
@WebService
public interface Calculator {
public int add(int a, int b);
public int multi(int a, int b);
}
这里看到在类定义上,加了一个“@WebService”的annotation,这是定义JAX-WS定义WebService的关键,这个annotation用来告诉java解析器你希望把这个接口中的方法发布成一些WebService的服务。
有了接口定义,下面给出一个实现:
package test;
import javax.jws.WebService;
@WebService(endpointInterface = "test.Calculator")
public class CalculatorImpl implements Calculator {
public int add(int a, int b) {
return a + b;
}
public int multi(int a, int b) {
return a * b;
}
public int minus(int a, int b) {
return a - b;
}
}
这里WebService annotation里加了一个参数"endpointInterface",这个参数用来指定这个WebService的抽象服务接口,例如此处如果不用"endpointInterface"指定接口,那么生成的WebService服务有三个操作"add","multi"和"minus",也就是定义在当前类中的方法集;如果指定了endpointInterface,则只有"add","multi",即定义在Calculator中的方法集。
二、发布服务
上面就已经定义好了服务接口和服务实现类,然后就可以发布了。发布也是相当的简单,只需要一条语句:
package test;
import javax.xml.ws.Endpoint;
public class Server {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8088/calculator",
new CalculatorImpl());
}
}
这里publish方法需要两个参数:
- address:服务对外暴露的用于调用服务的地址
- implementor:服务的实现对象
启动这个Server类,就可以访问服务了。要测试服务有没有启动,可以输入ttp://localhost:8088/calculator?wsdl,如果一切正常,就可以看到一个wsdl定义内容,表示服务已经成功启动。
三、annotations
使用jax-ws时,有两个重要的annotation:
此注示用来标明此java类为某个WebService的实现类或者标明此java接口定义了某个WebService的接口。@WebService有六个参数可以用来配置这个WebService的定义:
-
-
endpointInterface:上面已经介绍了,指向一个定义此WebService抽象定义接口的完整类路径
-
name:WebService名;默认的port名为"实现类名+Port",binding名为"实现类名+PortBinding",通过指定name的值来替换 实现类名。
-
portName:指定port名,可以完成替换默认port名,或由上面的"name"指定的port名。
-
targetNamespace:指定targetNamespace值,默认的值为 "http://包名/",可以通过此变量指定一个自定义的targetNamespace值。(注:如果分别定义和接口和实现,则他们有各自的targetNamespace)
- serviceName:指定service名
- wsdlLocation:指向一个预定义的wsdl的文件,替代自动生成的wsdl文件。
- @WebMethod
- action:指定此方法对应的action
- exclude:true --表示此方法包含在web服务中;false表示排除此方法
- operationName:指定方法对应的operation的名字。
分享到:
相关推荐
一个关于CXF实现jax-ws规范的webservice #CXF框架 Apache CXF=Celtix+Xfire.是一个开源的一个webservice,可以与spring无缝集成。支持soap1.1、1.2、RESTtful或者CORBA。 ##使用CXF实现jax-ws规范的webservice ...
基于接口创建类。 例如,给定以下 JAX-RS 定义 package serverPackage ; import javax.ws.rs.GET ; import javax.ws.rs.Path ; import javax.ws.rs.PathParam ; @Path ( " /helloworld " ) public interface ...
JAVA EE 和 JAX-WS 将是一个不错的选择,但我决定坚持使用 Spring WS 和 Spring Boot 作为超级胶水。 作业涵盖了以下主题: 创建两个端点,根据简单过滤返回查询结果列表 使用 WS-Security 进行基本身份验证 按照...
Lucene索引ÔËĐĐťˇžłŁş jdk-1.7 tomcat-7.0.47 ˇĂÎĘľŘÖˇŁş myeclipse 网络服务: 创建一个“网络服务项目” 创建一个类并添加一个将成为服务接口的方法创建“Web 服务” 3.1 选择“JAX-WS”和...
创建一个maven项目(war) 编写实体类,Service 导入applicationContext.xml 配置cxf的发布 客户端测试代码 WebService-RS RS-独立发布 编写服务接口 打上@path配置路径 @get等请求方式 @...
JavaTM 2 Platform Standard Edition 6 API 规范 本文档是 Java 2 Platform Standard Edition ...javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算...
2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到...
2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到...
javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...
javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...
javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...
javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...
javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...
javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...
javax.xml.ws.spi 该包定义用于 JAX-WS 2.0 的 SPI。 javax.xml.xpath 此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API。 org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发...
第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...
它们的新的项目分别是ApacheCXF和Axis2.Java语言也制定关于REST网络服务规范:JAX-RS:JavaAPIforRESTfulWebServices(JSR311)。相信还会出现更多与REST相关的激动人心的信息。 REST与AJAX技术 尽管AJAX技术的...