`
happy_tao_cool
  • 浏览: 18309 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

WebService Jax-ws 简单应用

    博客分类:
  • java
阅读更多

目前需要用到jax-ws,所以在进行学习,当前给出一个jax-ws的应用流程:

1.创建接口HelloWorldService接口及方法

/**
 * @(#) IHelloService.java
 */
package com.webservice;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

/**
 * @version 1.0
 * @Function 类功能说明:创建服务端接口
 */
@WebService
@SOAPBinding(style = Style.DOCUMENT)
public interface IHelloWorldService {
    
    @WebMethod
    public String sayHelloWorld(@WebParam(name= "name")String name);
}

 

2.创建接口的实现类,并为接口注入@WebService

/**
 * @(#) HelloWorldImpl.java
 */
package com.webservice;

import javax.jws.WebService;

/**
 * @version 1.0
 * @Function 类功能说明:实现接口,并注入webservice注解
 */
@WebService(endpointInterface = "com.webservice.IHelloWorldService")
public class HelloWorldServiceImpl implements IHelloWorldService{
    
    public String sayHelloWorld(String name) {
        return "Hello World : "+name;
    }
}

 

3.编写发布类,通过Endpoint将接口发布出去

/**
 * @(#) WsPublisher.java
 */
package com.webservice;

import javax.xml.ws.Endpoint;

/**
 * @version 1.0
 * @Function 类功能说明:发布服务端的接口
 */
public class WsPublisher {

    public static void main(String[] args) {
        System.out.println("开始发布。。。");
        Endpoint.publish("http://127.0.0.1:8012/hello_world", new HelloWorldServiceImpl());
        System.out.println("发布成功。。。");
    }

}

 

运行WsPublisher后,有以下的效果:

开始发布。。。
2013-8-31 9:24:30 com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrapperClass
信息: Dynamically creating request wrapper Class com.webservice.jaxws.SayHelloWorld
2013-8-31 9:24:30 com.sun.xml.internal.ws.model.RuntimeModeler getResponseWrapperClass
信息: Dynamically creating response wrapper bean Class com.webservice.jaxws.SayHelloWorldResponse
发布成功。。。

 

这时候就可打开浏览器查看http://127.0.0.1:8012/hello_world?wsdl 有如下效果说明发布成功了

<!--
 Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. 
-->
<!--
 Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. 
-->
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice.com/" name="HelloWorldServiceImplService">
<types>
<xsd:schema>
<xsd:import namespace="http://webservice.com/" schemaLocation="http://127.0.0.1:8012/hello_world?xsd=1"/>
</xsd:schema>
</types>
<message name="sayHelloWorld">
<part name="parameters" element="tns:sayHelloWorld"/>
</message>
<message name="sayHelloWorldResponse">
<part name="parameters" element="tns:sayHelloWorldResponse"/>
</message>
<portType name="IHelloWorldService">
<operation name="sayHelloWorld">
<input message="tns:sayHelloWorld"/>
<output message="tns:sayHelloWorldResponse"/>
</operation>
</portType>
<binding name="HelloWorldServiceImplPortBinding" type="tns:IHelloWorldService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="sayHelloWorld">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="HelloWorldServiceImplService">
<port name="HelloWorldServiceImplPort" binding="tns:HelloWorldServiceImplPortBinding">
<soap:address location="http://127.0.0.1:8012/hello_world"/>
</port>
</service>
</definitions>

 

 

4.创建相关的文件夹,在cmd命令行下,使用wsgen指令,生成相应的wsdl文件和异常处理的相关类 wsgen -cp .;bin/ -r ws/wsdl -s ws/src -d ws/bin -wsdl com.webservice.HelloWorldServiceImpl    (没办法上传图片确实比较坑)

 

5.创建相关的文件夹,使用wsimport指令生成客户端代码

wsimport -s client/src -d client/bin -p com.webservice.client http://localhost:8012/hello_world?wsdl

生成相应的接口:

com.webservice.client.HelloWorldServiceImplService
com.webservice.client.IHelloWorldService
com.webservice.client.ObjectFactory
com.webservice.client.package-info
com.webservice.client.SayHelloWorld
com.webservice.client.SayHelloWorldResponse

 

6.最后就可以写客户端代码,进行调用了。

/**
 * @(#) HelloWorldClient.java
 */
package com.webservice.client.test;

import com.webservice.client.HelloWorldServiceImplService;
import com.webservice.client.IHelloWorldService;

/**
 * @version 1.0
 * @Function 类功能说明:客户端调用
 */
public class HelloWorldClient {

    public static void main(String[] args) {
        HelloWorldServiceImplService service = new HelloWorldServiceImplService();
        IHelloWorldService worldService = service.getHelloWorldServiceImplPort();
        System.out.println(worldService.sayHelloWorld("hahaha"));
    }

}

 

 运行客户端输出结果:

Hello World : hahaha

 

到这里整个流程也就跑完了,现在是刚开始学习webservice的jax-ws;以后还需要继续深入学习,内容会有一定的更新

分享到:
评论

相关推荐

    java WebService Jax-WS创建

    【Java WebService Jax-WS 创建】是Java中创建Web服务的一种常见方式,主要用于构建基于SOAP(Simple Object Access Protocol)的Web服务。JAX-WS(Java API for XML Web Services)是Java EE 5及更高版本中提供的...

    webservice之jax-ws

    读者可以通过阅读该博客文章深入了解JAX-WS的实践应用。 综上所述,JAX-WS是Java平台上的Web服务标准,它通过注解驱动的模型和XML配置方式,简化了Web服务的开发和调用。与JAXB结合使用,能够高效地处理数据交换,...

    Jax-ws所需要的JAR包

    在Java应用服务器,如Tomcat中使用JAX-WS时,通常需要一些特定的JAR文件来支持其功能。这些JAR文件包含了JAX-WS的运行时库和相关的服务实现。描述中提到的"Jax-ws所需要的JAR包"很可能包括了以下几个关键组件: 1. ...

    如何基于JAX-WS开发一个WebService实例

    本篇将深入讲解如何基于JAX-WS开发一个WebService实例。 首先,让我们了解JAX-WS的基本概念。JAX-WS提供了一种简单的方式来创建SOAP(Simple Object Access Protocol)Web服务,它集成了Java SE和Java EE平台,使得...

    jax-ws api jar包

    - **JAX-WS运行时环境**:Java EE应用服务器(如Tomcat、Glassfish、WildFly等)内置了JAX-WS支持,可以自动处理服务的生命周期,包括服务的发布、查找和取消发布。 4. **优势:** - **简单性**:JAX-WS使用注解...

    jax-ws webservice demo

    基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht

    基于JDK自带的Web服务JAX-WS实现WebService的简单示例

    Java 基于第三方插件实现WebService实在麻烦,尤其是要添加几十M的Jar包...还好,自从JDK 1.6开始,Java自身已经支持WebSeervice的开发即JAX-WS,附件是一个简单的示例,供入门参考。注意,JDK环境要求1.6及以上版本。

    jax-ws webservice简单demo

    在这个"jax-ws webservice简单demo"中,我们将探讨JAX-WS的基础知识、如何创建一个简单的Web服务以及如何测试这个服务。 首先,JAX-WS的核心组件包括: 1. **Service端点接口(SEI, Service Endpoint Interface)**...

    jax-ws实现webservice调用

    **Java API for XML Web ...在"HelloServer"这个示例中,我们可以看到一个基本的JAX-WS服务端实现,它演示了如何发布一个简单的"Hello, World"服务。通过学习和实践,你将能够构建更复杂、功能丰富的Web服务应用。

    JAX-WS2.0 API

    1. **企业级应用集成:**JAX-WS常用于构建企业级系统之间的集成,通过Web服务实现不同系统间的通信。 2. **跨平台通信:**由于SOAP是一种开放的标准,JAX-WS使得Java应用能够与其他平台(如.NET或PHP)上的应用进行...

    webservice Demo注解+jax-ws

    JAX-WS使得开发人员能够通过简单的接口定义和注解来构建Web服务,从而简化了Web服务的开发过程。与早期的Java API for XML Processing (JAX-RPC)相比,JAX-WS更符合面向对象的设计原则,更易于使用。 在本示例中,...

    jax-ws发布webservice

    Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于构建和部署Web服务。它简化了Web服务的开发,使得Java开发者能够更方便地创建、调用和部署SOAP(Simple Object Access Protocol)服务。在这个...

    JAX-WS 2.2 RI所有相关jar包

    JAX-WS 2.2 RI 所包含的JAR包集合,包含25个JAR包,列表如下: FastInoset.jar gmbal-api-only.jar ha-api.jar javax.annotation.jar javax.mail_1.4.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api...

    metro-jax-ws-jaxws221x.zip

    “metro-jax-ws-jaxws221x.zip”是一个宝贵的资源,对于想要学习和掌握JAX-WS的开发者来说,它可以提供一个完整的实践环境,帮助理解Web服务的生命周期、客户端和服务端的交互以及如何在实际项目中应用JAX-WS技术。...

    Jax-ws RI.zip

    在实际应用中,JAX-WS还支持WSDL(Web Services Description Language)用于定义Web服务的接口和绑定。WSDL文件是XML格式的,它描述了服务的输入、输出、操作以及如何访问这些服务。开发者可以利用JAX-WS的工具自动...

    JAX-WS_WebService.rar

    JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用

    jax-ws2.1.zip

    **标签:“jax-ws2.1”**表明这个压缩包与JAX-WS 2.1规范相关,该规范发布于2006年,是JAX-WS的早期版本,相对于后续的2.2及更高版本,可能会缺少一些特性或改进,但仍然广泛应用于许多现有的Java EE项目中。...

    设计与开发 JAX-WS 2.0 Web 服务

    - **添加注解**:在服务接口和实现类上添加必要的JAX-WS注解,例如`@WebService`和`@WebMethod`等,用以指导工具生成相应的WSDL文件和其他元数据。 3. **示例:订单处理Web服务** - **服务接口定义**:创建一个...

    基于JAX-WS2.2开发WebService所需jar资源包

    使用 Eclipse JavaEE 开发 WebService 时,若选择手动创建原生的JAX-WS服务,需要导入此jar资源(教程详见我的博文https://blog.csdn.net/weixin_50604409/article/details/116399530)。 如果您同时装有 IntelliJ ...

Global site tag (gtag.js) - Google Analytics