`

jdk webservice

    博客分类:
  • java
 
阅读更多
JDK1.6 自带webservice构建


    JDK1.6中自带了webservice的功能,因为集成了JAX-WS,这非常方便,不用再用第三方包来开发了。

下面我们开始构建:

  1,先用Eclipse建立一个动态网站,注意需要生成web.xml,建工程的时候不要忘记勾选;

  2,建立类实现Web Services接口,下面是一个简单定义Web Services接口的实现类:


复制代码
代码
1 package javaWebServiceTest;
2
3  import javax.jws.WebMethod;
4  import javax.jws.WebParam;
5  import javax.jws.WebResult;
6  import javax.jws.WebService;
7  import javax.jws.WebParam.Mode;
8  import javax.jws.soap.SOAPBinding;
9  import javax.jws.soap.SOAPBinding.Style;
10  import javax.jws.soap.SOAPBinding.Use;
11
12  import webServiceInterface.Person;
13
14 @WebService(name="SayHello", portName="SayHellowServicePort", serviceName="SayHelloServiceName",
15          targetNamespace="http://www.webservice.com")
16 @SOAPBinding(style = Style.RPC,use = Use.LITERAL) 
17 public class ChService {
18    
19     @WebMethod(action="sayHello", operationName="saySomeWord")
20     @WebResult(name="Person", partName="PersonName")
21     public Person sayHelloWord(@WebParam(name="paramA", partName="p1", mode = Mode.IN)String name){
22         Person persons = new Person();
23         persons.setName("My name is " +name);
24         return persons;
25     }
26
27 }
28


复制代码





    

3,Person类


复制代码
1 package webServiceInterface;
2
3
4 public class Person
5 {
6     String name;
7
8     public String getName() {
9         return name;
10     }
11
12     public void setName(String name) {
13         this.name = name;
14     }
15 }


复制代码

这样,我们基本上就实现了webservice的构建,是不是感觉不是很难,跟写普通的java方法一样,其实jdk自带的webservice是通过注释注入方法实现的。所以上面那些以"@"符号开头的都是非常重要的,也是必须的。

下面我们来配置我们写的WebService到Apache中:

1,上面第一步,我们生成了一个web.xml类,我们向<web-app>节点里面加入以下内容:


复制代码
代码
1 <listener>         
2     <listener-class> 
3             com.sun.xml.ws.transport.http.servlet.WSServletContextListener  
4     </listener-class> 
5   </listener>
6     
7     <servlet> 
8         <servlet-name>TestService</servlet-name> 
9         <servlet-class> 
10             com.sun.xml.ws.transport.http.servlet.WSServlet  
11         </servlet-class> 
12     </servlet> 
13      
14     <servlet-mapping> 
15         <servlet-name>TestService</servlet-name> 
16         <url-pattern>/jdkService</url-pattern>
17     </servlet-mapping>


复制代码

2,在web.xml的目录中再建立一个sun-jaxws.xml来配置endpoint的相关内容。




复制代码
代码
1 <?xml version="1.0" encoding="UTF-8"?>
2 <endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>  
3     <endpoint
4     name='TestService'
5     implementation='javaWebServiceTest.ChService'
6     binding="http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/"
7     url-pattern='/jdkService'/>
8 </endpoints>


复制代码





好了,配置完了。把我们建立的项目加入到apache7.0中,然后启动。

在浏览器输入:http://localhost:8080/TestWebService/jdkService?wsdl,便可以访问到。

如图:







现在我们来说说那些以"@"符号开头的内容。

1,@WebService(name="SayHello", portName="SayHellowServicePort",  serviceName="SayHelloServiceName", targetNamespace="http://www.possystem.com")

name: SayHello
  用户实例化用,例:
      private WinService.SayHelloClient win = new winformService.WinService.SayHelloClient();
  WSDL中:<portType name="SayHello">
serviceName: SayHelloServiceName
      指定Web Service的名称 ,WSDL中:<service name="SayHelloServiceName">
portName: SayHellowServicePort
       WSDL中:<port name="SayHellowServicePort" binding="tns:SayHellowServicePortBinding">  
wsdlLocation:wsdlLocation 是引用预先存在的 WSDL 文件的 URL(相对或绝对)。
targetNamespace:wsdl命名空间



2,@SOAPBinding(style = Style.RPC,use = Use.LITERAL)
style: 定义发送到 Web Service 的消息和从 Web Service 发送的消息的编码样式。
        Document和RPC两种形式   
        默认值:
             javax.jws.soap.SOAPBinding.Style.DOCUMENT
        
   use:  定义发送到 Web Service 的消息和从 Web Service 发送的消息的格式样式。         
         ENCODED和 LITERAL两种形式

          默认值:
             javax.jws.soap.SOAPBinding.Use.LITERAL   



3, @WebMethod(action="sayHello", operationName="saySomeWord")

   action: sayHello
     此操作的动作。 对于 SOAP 绑定,此方法可确定 soap 动作的值。
     WSDL中: <soap12:operation soapAction="sayHello" />
  operationName: sayHelloWord1
     与此方法匹配的 wsdl:operation 的名称。
     此名称也用于客户端调用的方法的名称。
  exclude
         将某一方法标记为不作为一个 web 方法公开。



4, @WebResult(name="Person", partName="PersonName")

   name: Person
     返回值的名称。 如果操作是 rpc 样式,并且partName尚未指定, 表示此返回值的 wsdl:part 的名称
     WSDL中:<part name="Person" type="tns:person" />
  partName: PersonName
     表示此返回值的 wsdl:part 的名称。
     此名称只在操作是 rpc 样式,或者操作是文档样式且参数样式为 BARE 时使用。
     WSDL中:<part name="PersonName" type="tns:person" />



5,  public Person sayHelloWord(@WebParam(name="paramA", partName="p1", mode = Mode.IN)String name){……}
   name: paramA
   如果该操作是 rpc 样式的,并且尚未指定 @WebParam.partName,则此名称是表示参数的 wsdl:part 的名称。
   如果该操作是文档样式的,或者参数映射到某一个头,则此名称是表示参数的 XML 元素的本地名称。
   如果操作是文档样式的,参数样式为 BARE 并且模式为 OUT 或 INOUT,则必须指定一个名称。
   客户端调用时参数名称显示该值。
  partName: p1
   表示此参数的 wsdl:part 的名称。
   此名称仅在操作是 rpc 样式,或者操作是文档样式且参数样式为 BARE 时使用。
   WSDL中:
    <message name="sayHelloWord1">
       <part name="p1" type="xsd:string" />
      </message>
     客户端调用时参数名称显示该值。
    这个主要是根据样式来。
    mode:参数的流向(IN、OUT 或 INOUT 之一)。



以上只是对一些常用的作了一些解释,都是自我理解的,有不正确的地方,还请指正。  
分享到:
评论

相关推荐

    jdk webservice部署

    【JDK Webservice部署】是Java开发中一种基础但重要的技术,它允许应用程序通过Web服务接口进行通信。本文将详细阐述使用Java自带的JDK实现Web服务发布的过程,以及如何运行和测试这些服务。 首先,我们需要创建一...

    1.7版本JDK使用webService报表报送所需jdk jar包.zip

    JDK1.7版本使用 webService 需要添加两个额外 jar 包,否则会报错,需要将这两个 jar 包放到 jre/ext 目录下,同时配置jre/lib 下得 java.security 文件

    jdk5 webservice demo

    【标题】"JDK5 WebService Demo"是一个基于Java开发的Web服务示例项目,它展示了在JDK 5.0版本中如何实现和使用Web服务。Web服务是一种通过网络进行通信的应用程序接口(API),它允许不同系统之间的数据交换。JDK 5...

    WebService一——使用JDK开发WebService

    【WebService一——使用JDK开发WebService】 WebService是一种基于XML(Extensible Markup Language)的网络服务标准,它允许不同系统间的应用程序进行交互,不受操作系统、编程语言的限制。本篇文章将探讨如何使用...

    使用JDK开发WebService

    **使用JDK开发WebService** 在Java开发领域,WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的通信协议,它允许不同系统之间进行数据交换,跨越各种平台和编程语言。本教程将深入讲解如何使用JDK(Java ...

    jdk 生成webservice工程(源码 )

    【标题】"JDK生成Web服务工程(源码)"涉及的是使用Java开发Web服务的基本技术,特别是通过Java API for XML Web Services (JAX-WS)来创建和消费Web服务的过程。JAX-WS是Java平台上用于构建SOAP Web服务的标准API,...

    Webservice入门教程_用JDK开发Webservice示例代码

    本教程将带你入门Webservice的开发,特别聚焦于使用JDK(Java Development Kit)来构建Webservice服务。我们将探讨以下几个关键知识点: 1. **SOAP与WSDL**:Web Service是通过SOAP(Simple Object Access Protocol...

    java webservice服务端及客户端简单示例

    在JDK1.6版本以后,在&lt;JAVA_HOME&gt;/bin目录下有一个wsimport.exe工具,该工具可以根据wsdl文件自动生成webservice接口调用的java客户端代码,十分方便。而自己仅需要写一个测试类。 使用过程如下: 1. 获取...

    jdk 6.0 自带webservice实现 实例

    "JDK 6.0 自带 Webservice 实现实例" JDK 6.0 自带 Webservice 实现实例是使用 JDK 自带的功能来实现 Webservice 的一个示例。这个示例展示了如何使用 JDK 6.0 中自带的轻量级 Webservice 服务器来发布一个简单的 ...

    JDK6开发WebService及用户认证

    【标题】"JDK6开发WebService及用户认证" 在Java世界中,开发Web服务(WebService)是一种常见的数据交换方式,特别是在分布式系统和跨平台通信中。JDK6提供了对WebService的支持,使得开发者能够轻松地创建、发布...

    jdk自动生成webservice

    Java Development Kit(JDK)是Java编程语言的核心组件,它包含了一套开发和运行Java应用程序所需的工具和库。在Java中实现Web服务,JDK提供了一种便捷的方式,即使用JAX-WS(Java API for XML Web Services)来创建...

    webservice6 跨越session管理

    【跨服务Session管理详解】 在Web服务开发中,Session管理是一项关键任务,特别是在涉及多个相关服务的复杂系统中。跨服务Session管理允许不同Web服务之间共享用户的状态信息,确保在整个应用流程中用户的一致性...

    jdk6 开发webservice

    JDK 6引入了JAX-WS(Java API for XML Web Services),它是一个标准的、基于注解的框架,简化了Web Service的开发流程。以下是对标题和描述中涉及的知识点的详细说明: 1. **JAX-WS**: JAX-WS是Java平台的一个核心...

    jdk开发webservice

    jdk6下开发webservice示例,JDK1.6 自带webservice构建,jdk6原生态webservice

    WebService使用JDK发布

    Web服务(WebService)是一种基于互联网的、平台独立的交互方式,允许不同的系统之间进行数据交换。在本场景中,我们关注的是使用Java Development Kit(JDK)来发布Web服务。JDK提供了内置的支持,通过使用Java API...

    JDK1.6支持WebService

    Java Development Kit (JDK) 1.6 是一个重要的Java平台版本,它引入了许多新特性以增强开发者的体验,其中包括对Web服务(Web Services)的全面支持。Web服务是一种通过互联网进行应用程序之间的通信方式,允许不同...

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

    Java 基于第三方插件实现WebService实在麻烦,尤其是要添加几十M的Jar包,有时还会导致项目冲突。还好,自从JDK 1.6开始,Java自身已经支持WebSeervice的开发即JAX-WS,附件是一个简单的示例,供入门参考。注意,JDK...

Global site tag (gtag.js) - Google Analytics