Java学习笔记——Java6开发WebService进阶
生活随笔
收集整理的這篇文章主要介紹了
Java学习笔记——Java6开发WebService进阶
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在上文中,使用Java6做了一個(gè)最簡(jiǎn)單的WebService服務(wù)的實(shí)現(xiàn),并通過(guò)Java6API發(fā)布了該服務(wù)。 在本文中,將看到如何使用Java6來(lái)做一個(gè)WebService服務(wù),并如何使用Java6提供的開發(fā)工具來(lái)生成客戶端代碼,并調(diào)用服務(wù)。 一、服務(wù)端代碼 package org.agrimony.ws.server;import javax.jws.WebService;
import javax.xml.ws.Endpoint;/*** Java6開發(fā)WebService入門* * @author agrimony* */
@WebService
public class Java6WS {/*** Web服務(wù)中的業(yè)務(wù)方法* * @return*/public String doSomething(String userName) {return userName+" is doing something!";};/*** @param args*/public static void main(String[] args) {// 發(fā)布一個(gè)WebServiceEndpoint.publish("http://192.168.2.126:8080/WebService/Java6WS",new Java6WS());}}
在瀏覽器中訪問(wèn)WSDL:http://192.168.2.126:8080/WebService/Java6WS?wsdl顯示內(nèi)容
This XML file does not appear to have any style information associated with it. The document tree is shown below. <!--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://server.ws.agrimony.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://server.ws.agrimony.org/" name="Java6WSService"> <types> <xsd:schema> <xsd:import namespace="http://server.ws.agrimony.org/" schemaLocation="http://192.168.2.126:8080/WebService/Java6WS?xsd=1"/> </xsd:schema> </types> <message name="doSomething"> <part name="parameters" element="tns:doSomething"/> </message> <message name="doSomethingResponse"> <part name="parameters" element="tns:doSomethingResponse"/> </message> <portType name="Java6WS"> <operation name="doSomething"> <input message="tns:doSomething"/> <output message="tns:doSomethingResponse"/> </operation> </portType> <binding name="Java6WSPortBinding" type="tns:Java6WS"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="doSomething"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="Java6WSService"> <port name="Java6WSPort" binding="tns:Java6WSPortBinding"> <soap:address location="http://192.168.2.126:8080/WebService/Java6WS"/> </port> </service> </definitions> 二、生成客戶端代碼 Java6提供生成WebService客戶端代碼工具,注意,在生成前需要先啟動(dòng)服務(wù)端,用法如下圖: 命令:D:\Program Files\Eclipse_JEE\workspace\Java6WS\src>wsimport ?-p ?org.agrimony.ws.client? -keep ?http://192.168.2.126:8080/WebService/Java6WS?wsdl期中"-p" 后邊接要生成的客戶端代碼的命令空間,wsimport用法格式:wsimport [options] <WSDL_URI>
生成后的項(xiàng)目目錄如下:
三、寫客戶端的測(cè)試類
package org.agrimony.ws.test;import org.agrimony.ws.client.Java6WS; import org.agrimony.ws.client.Java6WSService;public class TestClient {/*** 測(cè)試Java6 WS生成的客戶端代碼* * @param args*/public static void main(String[] args) {// 創(chuàng)建一個(gè)客戶端服務(wù)對(duì)象Java6WS java6ws = new Java6WSService().getJava6WSPort();// 調(diào)用服務(wù)方法,并得到方法返回值String returnContent = java6ws.doSomething("旺財(cái)");// 打印服務(wù)的返回值 System.out.println(returnContent);}}注意,上面導(dǎo)入的類全是
org.agrimony.ws.client包下面的。
調(diào)用輸出結(jié)果:
旺財(cái) is doing something!
?
參考原文地址:http://lavasoft.blog.51cto.com/62575/226581
轉(zhuǎn)載于:https://www.cnblogs.com/agrimony/p/3253075.html
總結(jié)
以上是生活随笔為你收集整理的Java学习笔记——Java6开发WebService进阶的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 剑指offer--面试题12
- 下一篇: java时间的转换