簡單JAX-WS Web Service使用教學

2023-10-24 04:58

本文主要是介绍簡單JAX-WS Web Service使用教學,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JAX-WS(Java API for XML Web Services)Web Service是一種由Oracle Sun發展的以XML為基礎的Web Service開發技術。目前已經涵概到Java EE5(含)以上的版本,它可以讓使用者迅速開Java Web Service,除了採用SOAP(Simple Object Access Protocol)通訊協定和XML資料標準,也支援以HTTP為基礎的通訊協定,JAX-WS使用JAXB 2.0處理資料物件與XML資料格式的映射交換,可以在程式代碼中使用@XXX的註解標籤,大大的簡單化Web Service開發流程與減少Web Service於執行階段所產生JAR檔的大小。在這篇教學文章中,會建立一個Web Service且安排內部的程式邏輯、再分別寫三個Web Service Client,

  • 簡單Java AP Client
  • 簡單Servlet Web AP Client
  • 簡單JSP Web AP Client
來使用與測試Web Service服務是否正常運作。

在本範例中選擇NetBean IDE 6.9來開發Web Service,緊接著我們會依照下面的步驟逐一的完成Web Service程式的建立:  

建立一個Web Service

首先, 單擊滑鼠右鍵後選擇「New Project」項目(圖1),再來選取Java Web -> Web Application次項目 (圖2) ,稍後畫面帶到 「New Web Application」 對話框 後,請逐一完成 Name and Location Server and Settings Framework 」步驟的內容設定:
  1. Name and Location請設定Project Name為Welcome,其餘Project Location、 Project Folder都為預設值。
  2. 於Server and Settings設定Server為GlassFish Server 3,其他的Java EE Version、Context Path均為預設值。
  3. 到Framework步驟時,需依據每一個專案的需要選擇適當的framework來配合專案一起使用,但在本例子中並不需要使用framework。


圖1. 單擊滑鼠右鍵後選擇「New Project」項目


圖2. 再來選取Java Web -> Web Application次項目




設計Web Service方法

籍由我們的右手移動滑鼠到Source Packages圖示項目,右擊滑鼠選擇New -> Web Service...次項目,如圖3請於Name and Location對話方塊中完成Web Service Name為 WelcomeWebService ,package則輸入 jcode.test.ws ,其他部份保持預設值。

圖3. 於Name and Location對話方塊中完成Web Service Name和package配置

在建立第一支WelcomeWebService之後, 請切換「 Design 」模式以圖形化模式操作來建立Web Service的方法( 圖4 ),

圖4. 切換「Design」模式以圖形化模式操作來建立Web Service的方法

將滑鼠移至 Add Opertion... 」按鈕 (圖5) ,加入Name為welcome、Return Type為java.lang.String、Parameters部分我們增加一個input的參數為java.lang.String型態,然後按OK按鈕就完成了一個welcome的Web Service方法。

圖5. 透過Add Opertion...按鈕來建立新的welcome方法

雖然已經完成了welcome方法,但還是有所不足,因此需要微幅修改剛才建立好的方法,麻煩再從 Design 模式切換到 Source 模式來直接修改程式代碼,請修改下圖6的紅色框線標示的一段程式碼。 (欲加入程式代碼:  return "Welcome "+input+"!!"; )

圖6. 於welcome方法中修改程式代碼

部署與測試Web Service

當撰寫好第一支WelcomeWebService服務之後,我們可以選擇GlassFish 3或Tomcat 6.0作為部署與當駐Web Service服務的Application Server。在這裏我們採用了NetBean IDE 6.9內附的GlassFish  3 Server並加以圖例說明,來實現簡單部署與測試Web Service過程。 
  1. 點擊「Services」項目按鈕(位於Welcome專案左上方的位置),後將滑鼠移動至Servers -> GlassFish Server 3次項目,點擊滑鼠右鍵出現脈絡選單(Context Menu)選擇「 start 」項目來啟動Ap Server(圖7)。
  2. 再把畫面切換回 「Projects」 項目按鈕,把滑鼠指向Welcome專案的小圖示,點選滑鼠右鍵所帶出來的脈絡選單內的「Deploy」,把該專案佈署到剛才已啟動的Ap Server上 (圖8) 。
  3. 最後就是要測試一下WelcomeWebService服務的WSDL連結是不是可以正常的連線 (請於Browser輸入http://localhost:8080/Welcome/WelcomeWebServiceService?wsdl測試連結) ,而且返回符合W3C所定義的Web Service WSDL的XML文件格式 (圖9) 。
          

    圖7. 啟動GlassFish Server 3應用伺服器


    圖8. 佈置Welcome專案到GlassFish Server 3應用伺服器上



    圖9. 測試WelcomeWebService服務是否可以正常連線運作


    转载地址:http://jerry17768java.blogspot.com/2012/07/jax-ws-web-service.html

    这篇关于簡單JAX-WS Web Service使用教學的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/272859

    相关文章

    Python使用Spire.PDF实现为PDF添加水印

    《Python使用Spire.PDF实现为PDF添加水印》在现代数字化办公环境中,PDF已成为一种广泛使用的文件格式,尤其是在需要保持文档格式时,下面我们就来看看如何使用Python为PDF文件添加水... 目录一、准备工作二、实现步骤1. 导入必要的库2. 创建 PdfDocument 对象3. 设置水印

    Java中的ConcurrentBitSet使用小结

    《Java中的ConcurrentBitSet使用小结》本文主要介绍了Java中的ConcurrentBitSet使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、核心澄清:Java标准库无内置ConcurrentBitSet二、推荐方案:Eclipse

    Go语言结构体标签(Tag)的使用小结

    《Go语言结构体标签(Tag)的使用小结》结构体标签Tag是Go语言中附加在结构体字段后的元数据字符串,用于提供额外的属性信息,这些信息可以通过反射在运行时读取和解析,下面就来详细的介绍一下Tag的使... 目录什么是结构体标签?基本语法常见的标签用途1.jsON 序列化/反序列化(最常用)2.数据库操作(

    Java中ScopeValue的使用小结

    《Java中ScopeValue的使用小结》Java21引入的ScopedValue是一种作用域内共享不可变数据的预览API,本文就来详细介绍一下Java中ScopeValue的使用小结,感兴趣的可以... 目录一、Java ScopedValue(作用域值)详解1. 定义与背景2. 核心特性3. 使用方法

    spring中Interceptor的使用小结

    《spring中Interceptor的使用小结》SpringInterceptor是SpringMVC提供的一种机制,用于在请求处理的不同阶段插入自定义逻辑,通过实现HandlerIntercept... 目录一、Interceptor 的核心概念二、Interceptor 的创建与配置三、拦截器的执行顺

    C#中checked关键字的使用小结

    《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

    C#中预处理器指令的使用小结

    《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

    Mysql中RelayLog中继日志的使用

    《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

    使用Redis实现会话管理的示例代码

    《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

    Springboot请求和响应相关注解及使用场景分析

    《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin