java开发web service最简单的方式是用jdk6自带的支持web service的注解功能。

1、编写代码如下:

package net.swiftlet;

import javax.jws.WebService;
import javax.xml.ws.Endpoint; //targetNamespace的默认值是service类所在包名,也可以设置成发布service的网站域名
@WebService(serviceName = "HelloService", targetNamespace = "www.swiftlet.net")
public class HelloService {
public String sayhello(String name) {
return "Hello " + name + " !"; } public static void main(String[] args) {
// 发布web service,参数1是服务公开的访问地址address,参数2是服务的具体实现
Endpoint.publish("http://localhost:8080/hello", new HelloService());
}
}

2、运行代码,一般以java application运行方式即可。可以看到运行后进程和启ServerSocket服务程序一样一直出于开启状态。输出信息如下:

2015-4-2 20:05:16 com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrapperClass
信息: Dynamically creating request wrapper Class net.swiftlet.jaxws.Sayhello
2015-4-2 20:05:16 com.sun.xml.internal.ws.model.RuntimeModeler getResponseWrapperClass
信息: Dynamically creating response wrapper bean Class net.swiftlet.jaxws.SayhelloResponse

3、在host系统文件里添加"127.0.0.1 www.swiftlet.net"。打开浏览器,输入"http://www.swiftlet.net:8080/hello",回车,此时页面可能是
Web Services No JAX-WS context information available.
因为一般浏览器不能直接访问WS程序,不过所有的WS都可以生成WSDL文档供一般浏览器访问,方式是在地址后面加上“?wsdl”就可以了,http://www.swiftlet.net:8080/hello?wsdl。
生成的文档如下:

<definitions targetNamespace="www.swiftlet.net" name="HelloService">
<types><xsd:schema><xsd:import namespace="www.swiftlet.net" schemaLocation="http://www.swiftlet.net:8080/hello?xsd=1"/></xsd:schema></types>
<message name="sayhello"><part name="parameters" element="tns:sayhello"/></message>
<message name="sayhelloResponse"><part name="parameters" element="tns:sayhelloResponse"/></message>
<portType name="HelloService">
<operation name="sayhello">
<input message="tns:sayhello"/>
<output message="tns:sayhelloResponse"/>
</operation></portType>
<binding name="HelloServicePortBinding" type="tns:HelloService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><operation name="sayhello">
<soap:operation soapAction=""/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output></operation>
</binding>
<service name="HelloService">
<port name="HelloServicePort" binding="tns:HelloServicePortBinding"><soap:address location="http://www.swiftlet.net:8080/hello"/>
</port>
</service>
</definitions>

4 除了可以在浏览器上访问发布的service程序,还可以通过客户端来获取。如下代码:

package net.swiftlet;
public class WebServiceClient
{
public static void main(String[] args)
{
HelloService myWebService = new HelloService();
System.out.println(myWebService.sayhello("Swiftlet"));
}
}

输出结果为:

Hello Swiftlet !

5 最后想说一点:HelloService类的@WebService注解部分可以简化。

@WebService()
public class HelloService
{
  public String sayhello(String name){
    return "Hello " + name + " !";
  }
public static void main(String[] args){
//发布web service,参数1是服务公开的访问地址address,参数2是服务的具体实现
   Endpoint.publish("http://localhost:8080/hello", new HelloService());
  }
}

这样就不用配置host:"127.0.0.1 www.swiftlet.net",可以使用此链接直接在浏览器进行访问:http://localhost:8080/hello?wsdl

JDK开发WebService的更多相关文章

  1. 使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  2. 2.使用JDK开发webService

    使用jdk开发webService需要注意:jdk版本必须1.6以及1.6以上! 以下webService的组成部分: server端和client端,通过服务器端(server)webService ...

  3. WebService学习总结(三)——使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  4. WebService-使用JDK开发WebService

    一.使用JDK开发WebService 2.1.开发WebService服务器端 1.定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所 ...

  5. WebService学习--(三)使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  6. 【WebService】使用JDK开发WebService(二)

    WebService的开发手段 1.使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) WebService的组成 1.服务器端 2.客户端 使用JDK开发WebService a. ...

  7. WEBSERVICE之JDK开发webservice

    转自:https://www.cnblogs.com/w-essay/p/7357262.html 一.开发工具与环境 1. jdk1.6版本以上(jdk1.6.0_21及以上版本) 2 .eclip ...

  8. [置顶] WebService学习总结(3)——使用java JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  9. WebService学习总结(三)——使用JDK开发WebService(转)

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  10. WebService学习总结(二)--使用JDK开发WebService

    一.WebService的开发方法 使用java的WebService时可以使用一下两种开发手段 使用jdk开发(1.6及以上版本) 使用CXF框架开发(工作中) 二.使用JDK开发WebServic ...

随机推荐

  1. Unity Shader-GodRay,体积光(BillBoard,Volume Shadow,Raidal Blur,Ray-Marching)

    好久没有更新博客了,经历了不少事情,好在最近回归了一点正轨,决定继续Unity Shader的学习之路.作为回归的第一篇,来玩一个比较酷炫的效果(当然废话也比较多),一般称之为GodRay(圣光),也 ...

  2. 【转】去掉HTML5中number类型input字段的小箭头

    第一种方案: 在chrome下: input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{    -webkit-appea ...

  3. java泛型的一些解释

    public <A extends Annotation> A getAnnotation(Class<A> annotationClass)我们经常在帮助文档中看到这样的方法 ...

  4. Intel与Motorola区别

    Intel低字节在前 Motorola高字节在前    在进行CAN总线通信设计或者测试过 程中,经常看到CAN总线信号的编码格式有两种定义:Intel格式与Motorola格式.究竟两种编码格式有什 ...

  5. SqliteDeveloper 破解

    方法1: 注册表删除 HKEY_CURRENT_USER\SharpPlus\SqliteDev 下的 StartDate 方法2:  安装完成SQLite Developer后,先不要打开软件,下面 ...

  6. [MySQL] 锁/死锁问题一例

    MySQL锁/死锁问题 在MySQL中, 不同事务隔离级别下, 锁的情况表现是不同的, 另外表的设计上有无索引也是一个因素. 做一个小的实验测试InnoDB锁表现 -:) 说明 事务隔离级别 READ ...

  7. Juce-强大的开源类库

    介绍 Juce是一个完全围绕C++语言的类库,用来开发跨平台的应用程序. 完整的用doxgen生成的html形式的API手册可以在这里下到.或者可以从下载页面下载预编译的windows帮助文件. 想获 ...

  8. python的加密操作

    hashlib加密 import hashlib # 有很多种加密方式,md5,sha1等等 h = hashlib.md5() # 提交加密的内容,bytes形式 h.update(b"s ...

  9. VS2005重置所有设置

    1. 关闭VS 2. 在命令行运行microsoft visual studio 8\common7\ide\devenv.exe /setup /resetuserdata /resetsettin ...

  10. 远程服务器的SqlServer允许本地连接

    最近做项目都是直接在阿里云买的服务器,并且SqlServer也是安装好的.但是默认的时候,这个服务器上的SqlServer并不允许直接在本地的SqlServer客户端访问,尽管服务器有公网IP. 想要 ...