- 浏览: 556092 次
- 性别:
文章分类
- 全部博客 (337)
- WEB前端@HTML (4)
- WEB前端@CSS (5)
- WEB前端@javascript (31)
- WEB前端@DHTML (8)
- WEB前端@jQuery (3)
- WEB前端@Flex4 (19)
- WEB前端@BootStrap3 (21)
- 数据交换@JSON (1)
- 模板标签@JSTL (1)
- 模板标签@Thymeleaf (1)
- 模板标签@XSL-FO (3)
- WEB后台@JavaSE (75)
- WEB后台@JAX-WS (27)
- WEB后台@HttpClient (0)
- WEB后台@SSO (2)
- 框架@Spring3 (3)
- 框架@spring_MVC (8)
- 框架@Hibernate (26)
- 框架@play framework (18)
- 框架@sl4j (4)
- 数据库@ (2)
- 数据库@JDBC (0)
- 服务器@Linux (14)
- 服务器@Tomcat (2)
- 第三方jar@dom4j (1)
- 第三方jar@POI (2)
- 第三方jar@CXF (5)
- 项目管理@Maven (22)
- 项目管理@SVN (1)
- 缓存管理@ehcache (1)
- 系统设计@设计模式 (10)
- 单元测试@JunitTest (1)
- 开发工具 (3)
- BUG收录 (1)
- 学习之路 (6)
- 面试之道 (1)
- 我的项目 (2)
最新评论
-
superich2008:
logback配置文件的改动会导致应用重新加载,多改动几次后就 ...
Chapter 3: Logback configuration -
chenzhihui:
不是可以在log4j中配置以控制台或者文件方式保存日志的?
play记录日志 -
smilease:
很棒,正缺这个,非常感谢
bootstrap3-typeahead 自动补全 -
guangling13345:
[size=x-small][/size]
二级联动菜单 -
jacksondesign:
有,和YAML的格式有关,不知道有没有什么好的YAML格式的验 ...
(四)play之yabe项目【页面】
1.使用wsimport命令将wsdl转换为本地的java接口
wsimport 是java提供的命令,专门用来对wsdl文件进行解析,并转换为本地的java文件
命令:
wsimport -d E:\technology-hqh\proj\webservice\JAX-WS\wsimport_01 -keep http://localhost:8888/numberService?wsdl
说明:
-d 指名生成文件的输出路径
-keep 生成的文件除了class文件,还包括java源文件
-verbose 生成的详细信息
2.访问webservice
本地创建一个新的项目,将wsimport生成的java文件拷贝到src中
由wsimport生成的文件中,会生成一个接口和一个实现类
实现类中提供了一个getXXXport(),用来返回具体的实现类
接口---实现类【多态】
IMyService接口
MyServiceImplService实现类
访问外部服务
wsimport 是java提供的命令,专门用来对wsdl文件进行解析,并转换为本地的java文件
命令:
wsimport -d E:\technology-hqh\proj\webservice\JAX-WS\wsimport_01 -keep http://localhost:8888/numberService?wsdl
说明:
-d 指名生成文件的输出路径
-keep 生成的文件除了class文件,还包括java源文件
-verbose 生成的详细信息
2.访问webservice
本地创建一个新的项目,将wsimport生成的java文件拷贝到src中
由wsimport生成的文件中,会生成一个接口和一个实现类
实现类中提供了一个getXXXport(),用来返回具体的实现类
接口---实现类【多态】
IMyService接口
package com.hqh.service; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.ws.RequestWrapper; import javax.xml.ws.ResponseWrapper; /** * This class was generated by the JAX-WS RI. * JAX-WS RI 2.1.6 in JDK 6 * Generated source version: 2.1 * */ @WebService(name = "IMyService", targetNamespace = "http://service.hqh.com/") @XmlSeeAlso({ ObjectFactory.class }) public interface IMyService { /** * * @param arg1 * @param arg0 * @return * returns int */ @WebMethod @WebResult(targetNamespace = "") @RequestWrapper(localName = "plus", targetNamespace = "http://service.hqh.com/", className = "com.hqh.service.Plus") @ResponseWrapper(localName = "plusResponse", targetNamespace = "http://service.hqh.com/", className = "com.hqh.service.PlusResponse") public int plus( @WebParam(name = "arg0", targetNamespace = "") int arg0, @WebParam(name = "arg1", targetNamespace = "") int arg1); /** * * @param arg1 * @param arg0 * @return * returns int */ @WebMethod @WebResult(targetNamespace = "") @RequestWrapper(localName = "minus", targetNamespace = "http://service.hqh.com/", className = "com.hqh.service.Minus") @ResponseWrapper(localName = "minusResponse", targetNamespace = "http://service.hqh.com/", className = "com.hqh.service.MinusResponse") public int minus( @WebParam(name = "arg0", targetNamespace = "") int arg0, @WebParam(name = "arg1", targetNamespace = "") int arg1); }
MyServiceImplService实现类
package com.hqh.service; import java.net.MalformedURLException; import java.net.URL; import java.util.logging.Logger; import javax.xml.namespace.QName; import javax.xml.ws.Service; import javax.xml.ws.WebEndpoint; import javax.xml.ws.WebServiceClient; import javax.xml.ws.WebServiceFeature; /** * This class was generated by the JAX-WS RI. * JAX-WS RI 2.1.6 in JDK 6 * Generated source version: 2.1 * */ @WebServiceClient(name = "MyServiceImplService", targetNamespace = "http://service.hqh.com/", wsdlLocation = "http://localhost:8888/numberService?wsdl") public class MyServiceImplService extends Service { private final static URL MYSERVICEIMPLSERVICE_WSDL_LOCATION; private final static Logger logger = Logger.getLogger(com.hqh.service.MyServiceImplService.class.getName()); static { URL url = null; try { URL baseUrl; baseUrl = com.hqh.service.MyServiceImplService.class.getResource("."); url = new URL(baseUrl, "http://localhost:8888/numberService?wsdl"); } catch (MalformedURLException e) { logger.warning("Failed to create URL for the wsdl Location: 'http://localhost:8888/numberService?wsdl', retrying as a local file"); logger.warning(e.getMessage()); } MYSERVICEIMPLSERVICE_WSDL_LOCATION = url; } public MyServiceImplService(URL wsdlLocation, QName serviceName) { super(wsdlLocation, serviceName); } public MyServiceImplService() { super(MYSERVICEIMPLSERVICE_WSDL_LOCATION, new QName("http://service.hqh.com/", "MyServiceImplService")); } /** * 这个方法就可以方便的返回一个实现类来让接口进行引用!!! * @return * returns IMyService */ @WebEndpoint(name = "MyServiceImplPort") public IMyService getMyServiceImplPort() { return super.getPort(new QName("http://service.hqh.com/", "MyServiceImplPort"), IMyService.class); } /** * * @param features * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values. * @return * returns IMyService */ @WebEndpoint(name = "MyServiceImplPort") public IMyService getMyServiceImplPort(WebServiceFeature... features) { return super.getPort(new QName("http://service.hqh.com/", "MyServiceImplPort"), IMyService.class, features); } }
访问外部服务
package com.hqh.service.test; import com.hqh.service.IMyService; import com.hqh.service.MyServiceImplService; public class VisitRemotServer { public static void main(String[] args) { //wsimport生成的实现类 MyServiceImplService myServiceImpl = new MyServiceImplService(); //通过实现类中的getXXXPort()返回一个实现给接口 IMyService iService = myServiceImpl.getMyServiceImplPort(); //接口调用方法(服务提供者中的方法将被调用执行并返回结果) int retPlus = iService.plus(1, 2); System.out.println(retPlus); } }
发表评论
-
实际应用-使用xsd定义Model对象
2014-02-27 02:24 1317使用schema定义Model 好 ... -
XJC 将schema转换为java类
2013-08-28 09:55 1857使用xjc(xml java change)将schema转 ... -
Webservice中获取Servlet的相关对象
2013-08-15 17:44 2884第一种方式: 通过注入WebServiceContex ... -
JAX与spring的无缝集成---增加Handler和Exception(二)
2013-08-15 16:00 1998客户端也使用spring集成JAX-WS。但是有一个问题需 ... -
Exception处理:服务端返回对象与客户端类型不一致XXX cannot be cast to XXX
2013-08-15 13:52 2613描述: 服务端向客户端返回数据时,发生类型转 ... -
JAX与spring的无缝集成(一)
2013-08-13 13:45 6625JAX-WS与spring集成有几 ... -
使用契约优先---重要注意事项
2013-08-11 22:23 1015使用契约优先编写schema和wsdl文件时,一般都是在ws ... -
通过HEADER传递信息-做权限控制
2013-08-08 18:11 2023通过HEADER而不是BODY传递“LICENSE” ... -
webservice传递二进制数据(文件)
2013-08-08 16:14 2300将二进制数据放到Attachment中进行传递,而不是放到 ... -
发布webservice到tomcat
2013-08-07 09:39 3052目标: 基于契约优先的webservice功能开发 ... -
基于契约优先的隐式头信息处理
2013-08-03 20:05 1230<?xml version="1.0&qu ... -
基于契约优先来编写webservice
2013-08-03 18:40 1222开发流程: 1.先写schema ... -
通过Handler添加HEADER
2013-08-03 14:05 2045LogicHandler 只能获取SOAPBody的信息 ... -
SOAP异常处理
2013-08-03 14:00 1009接口 package com.hqh.soap; imp ... -
深入SOAP发送消息的过程(SAAJ)
2013-07-28 18:54 2105SOAP结构体 SOAPMessage SOAPPa ... -
使用Transformer更新XML
2013-07-27 14:46 2783package com.hqh.stax; impo ... -
使用XMLStreamWriter写XML
2013-07-27 14:10 4028package com.hqh.stax; im ... -
使用java提供的XPATH处理xml
2013-07-27 13:10 982books.xml <?xml version=&q ... -
使用Stax处理XML
2013-07-27 10:57 1284java提供的XML处理 Stax处 ... -
使用JAXB完成XML与java对象的转换
2013-07-27 10:05 2155SAX 处理超大xml时使用 do ...
相关推荐
**标题与描述解析:** 标题"jax-rs jax-ws所需包,亲测可用"表明这个压缩包包含了用于开发...通过以上步骤,开发者可以快速搭建一个能正确处理JAX-RS和JAX-WS服务的环境,无需手动解决依赖问题,大大提高了开发效率。
JAX-WS 2.0是JAX-WS的第二个主要版本,它在JAX-RPC(Java API for XML-based RPC)的基础上进行了改进,引入了许多新特性以提升开发者的体验和效率。 **JAX-WS 2.0 的核心概念:** 1. **服务端点接口(SEI, ...
4. **jaxws-tools.jar**: 包含了JAX-WS相关的工具,如wsimport和wsgen,它们分别用于从WSDL生成Java源代码和服务端点,以及从Java源代码生成WSDL。 5. **sjsxp.jar**: 这是Java Simple XML Parser (JSXP)的实现,是...
本篇文章将深入探讨JAX-WS 2.0的核心概念、功能及其与相关技术如JAXB(Java Architecture for XML Binding)、SAAJ(SOAP with Attachments API for Java)和WSDL(Web Services Description Language)的交互。...
这通常是通过解析WSDL并使用`wsimport`工具生成客户端 stub完成的。 6. **测试服务**:编写客户端代码来调用服务,并验证服务是否按预期工作。这可能涉及到创建一个简单的Java应用程序或者使用像cURL这样的工具发送...
`jaxws-ri`是JAX-WS参考实现的源代码包,包含JAX-WS API的实现以及相关的工具,如`wsimport`,用于从WSDL生成客户端代码。开发者可以使用这个库来快速开发和测试JAX-WS Web服务。 **7. JAX-WS与JAX-RS比较** JAX-...
1. **生成WSDL(Web Service Description Language)文件**:JAX-WS工具如`wsimport`可以自动从服务接口生成WSDL文件,描述服务的接口和消息格式。 2. **创建部署描述符(web.xml)**:在`WEB-INF`目录下创建或更新`...
客户端可以通过解析WSDL来与服务进行交互。 **5. 客户端调用Web服务** JAX-WS还提供了工具,如wsimport,可以从WSDL生成Java客户端存根类,使得调用Web服务就像调用本地方法一样简单。例如: ```bash wsimport -...
JAX-WS使用Java Architecture for XML Binding(JAXB)进行数据绑定,以及使用Streaming API for XML(StAX)进行XML解析。JAX-WS还支持WS-Addressing和MTOM(消息传输优化机制)。 在创建Web服务的过程中,JAX-WS...
JAX-WS允许通过Java类自动生成WSDL文件。 2. **SOAP**:一种用于交换结构化信息的协议,是Web服务的基础通信协议。JAX-WS处理SOAP消息的生成和解析。 3. **JAXB(Java Architecture for XML Binding)**:用于在...
JAX-WS支持多种工具,如`wsimport`,它可以从WSDL文件生成Java客户端和服务器端代码。此外,Eclipse、IntelliJ IDEA等IDE也提供了对JAX-WS的集成支持,简化了开发过程。 ### 6. 文件列表解析 在提供的压缩包`...
JAX-WS通过将业务逻辑与服务接口分离,实现了松耦合的Web服务架构。 在Java世界里,JAX-WS是取代了早期的JAX-RPC(Java API for XML-based RPC)的规范,提供了更现代、更灵活的Web服务开发方式。JAX-WS的主要组件...
`wsimport`会解析WSDL文件并生成Java源代码,这些代码包括服务代理类和服务接口,允许客户端调用Web服务的方法。当看到“Parsing WSDL…”和“generating code…”的提示,表明命令执行成功。 生成的客户端代码包含...
接着,使用JAX-WS工具(如wsimport)生成服务端和客户端的代码。服务端会部署在应用服务器上,而客户端可以通过生成的代理类调用Web服务。JAXB则在服务的输入输出中处理XML数据的转换。 6. **优势**:JAX-WS和JAXB...
5. **客户端生成**:JAX-WS提供了`wsimport`工具,可以从WSDL文件自动生成客户端存根类,这些类提供了与服务交互的方法。 6. **JAXB(Java Architecture for XML Binding)**:JAXB是JAX-WS的一部分,用于在Java...
与早期的JAX-RPC相比,JAX-WS更注重XML和Web服务标准的遵从性,如WSDL(Web Services Description Language)、SOAP和WS-I(Web Services Interoperability) profiles。 二、创建Web服务 1. 定义服务接口:首先,...
10. **resolver.jar**:此库可能包含XML解析器的依赖管理工具,用于解决XML资源的引用和解析问题,确保正确加载和解析WSDL文件或其他XML文档。 通过这些jar包,开发者可以构建一个完整的JAX-WS服务端环境,能够创建...
`SOAP` Web服务通常基于`WSDL`(Web服务描述语言)进行定义,而`JAX-WS`(Java API for XML Web Services)则是Java平台上的标准框架,用于处理`SOAP`消息并构建`SOAP` Web服务。本篇文章将详细介绍`JAX-WS`以及在...
JAX-WS支持消息导向以及RPC导向的Web服务,并且能够通过XML进行通信。JAX-WS允许客户端和服务端之间有良好的互操作性:即Java平台上的客户端可以与Java平台上的Web服务交互,反之亦然。此外,JAX-WS遵循World Wide ...
2. 生成WSDL:使用JAX-WS工具(如wsimport)根据SEI生成WSDL。 3. 实现SEI:创建实现SEI的类,实现业务逻辑。 4. 部署服务:将服务部署到应用服务器,如Tomcat、JBoss等。 ### 4. 消费Web服务 消费JAX-WS Web服务...