1. 程式人生 > >webservice快速入門-使用JAX-WS註解的方式快速搭建ws服務端和客戶端(一)

webservice快速入門-使用JAX-WS註解的方式快速搭建ws服務端和客戶端(一)

WEBSERVICE快速入門的示例:

首先定義介面:

package com.whaty.platform.ws.server;

import javax.jws.WebService;

/**
 * @className:IMyservice.java
 * @Desc:定義:SEI service endpoint interface
 * @author:lizhuang
 * @createTime:2012-12-21 上午12:57:18
 */
//JAX-WS註解,表示java api xml for webservice。JDK自帶API的XML格式的webservice
@WebService
public interface IMyservice {
	
	int add(int a, int b);

	int minus(int a, int b);
}

其次編寫實現類:
package com.whaty.platform.ws.server;

import javax.jws.WebService;

/** 
 * @className:MyServiceImpl.java
 * @Desc:定義:SIB service implemention bean
 * @author:lizhuang
 * @createTime:2012-12-21 上午01:01:22
 */
//endpointInterface指定接入點介面:介面必須存在
@WebService(endpointInterface="com.whaty.platform.ws.server.IMyservice")
public class MyServiceImpl implements IMyservice {

	public int add(int a, int b) {
		System.out.println("a+b="+(a+b));
		return a+b;
	}

	public int minus(int a, int b) {
		System.out.println("a-b="+(a-b));
		return a-b;
	}

}

最後釋出我們的服務,直接右鍵執行main方法,如果控制檯沒報錯,多半是釋出成功了,否則檢查你的程式碼:
package com.whaty.platform.ws.server;

import javax.xml.ws.Endpoint;

/**
 * @className:MyServer.java
 * @Desc:釋出服務
 * @author:lizhuang
 * @createTime:2012-12-21 上午01:02:39
 */
public class MyServer {
	public static void main(String[] args) {
		//訪問方式:http://localhost:7777/tudou?wsdl
		String address="http://localhost:7777/tudou";
		Endpoint.publish(address, new MyServiceImpl());
	}
}
瀏覽器位址列輸入:訪問webservice看看是否釋出成功【地址後面加上"?wsdl"】:

http://localhost:7777/tudou?wsdl

瀏覽器顯示如下:

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.platform.whaty.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://server.ws.platform.whaty.com/" name="MyServiceImplService">
<types>
<xsd:schema>
<xsd:import namespace="http://server.ws.platform.whaty.com/" schemaLocation="http://localhost:7777/tudou?xsd=1"/>
</xsd:schema>
</types>
<message name="minus">
<part name="parameters" element="tns:minus"/>
</message>
<message name="minusResponse">
<part name="parameters" element="tns:minusResponse"/>
</message>
<message name="add">
<part name="parameters" element="tns:add"/>
</message>
<message name="addResponse">
<part name="parameters" element="tns:addResponse"/>
</message>
<portType name="IMyservice">
<operation name="minus">
<input message="tns:minus"/>
<output message="tns:minusResponse"/>
</operation>
<operation name="add">
<input message="tns:add"/>
<output message="tns:addResponse"/>
</operation>
</portType>
<binding name="MyServiceImplPortBinding" type="tns:IMyservice">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="minus">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="add">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="MyServiceImplService">
<port name="MyServiceImplPort" binding="tns:MyServiceImplPortBinding">
<soap:address location="http://localhost:7777/tudou"/>
</port>
</service>
</definitions>

下面我們建立客戶端訪問:

package com.whaty.platform.ws.client;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import com.whaty.platform.ws.server.IMyservice;

/**
 * @className:MyClient.java
 * @Desc:訪問釋出的服務
 * @author:lizhuang
 * @createTime:2012-12-21 上午01:23:57
 */
public class MyClient {
	public static void main(String[] args) {

		try {
			//服務WSDL Document的地址
			URL url = new URL("http://localhost:7777/tudou?wsdl");
			//Qnameqname是qualified name 的簡寫
			//2.構成:由名字空間(namespace)字首(prefix)以及冒號(:),還有一個元素名稱構成
			//由釋出的wsdl可知namespace為http://server.ws.platform.whaty.com/,
			QName qname=new QName("http://server.ws.platform.whaty.com/","MyServiceImplService");
			Service service=Service.create(url, qname);
			IMyservice ms=service.getPort(IMyservice.class);
			ms.add(1, 4);
			ms.minus(1, 4);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}


控制檯列印如下:

a+b=5
a-b=-3

相關推薦

webservice快速入門-使用JAX-WS註解方式快速搭建ws服務客戶

WEBSERVICE快速入門的示例: 首先定義介面: package com.whaty.platform.ws.server; import javax.jws.WebService; /** * @className:IMyservice.java * @De

C++快速入門---自動對所有的整數進行求和並打印出結果1

C++快速入門---自動對所有的整數進行求和並打印出結果(1)   要求: 編寫一個程式,要求使用者輸入一串整數和任意數目的空格,這些整數必須位於同一行中,但允許出現在改行中的任何位置。當用戶按下鍵盤上的“Enter”鍵時,資料輸入結束。程式自動對所有的整數進行求和並打印出結果

WebService - CXF入門 簡單的服務客戶

CXF Apache CXF = Celtix + XFire,開始叫 Apache CeltiXfire,後來更名為 Apache CXF 了,以下簡稱為 CXF。CXF 繼承了 Celtix 和 XFire 兩大開源專案的精華,提供了對 JAX-WS 

webservice學習筆記(六):使用CXF開發web service的服務客戶以及WebService請求深入分析

1.使用CXF開發web service -加入cxf的jar包即可,其他不需要改動   a.建立一個java專案,把之前的jdk開發webservice服務端的程式碼複製進去,把cxf的jar複製到lib下面並build path, 注意cxf的lib下有一個不是j

tcp長連線處理服務客戶處理方式

長連線的處理方式是: Server端收到Client端發來的資訊之後,開始心跳計時,在設定時間內如果收到Client發來的訊息,則重置計時器,否則計時結束斷開連線。 Client端,處理方式是:用time.NewTicker建立一個定時器,每間隔一秒傳送下當前時間到伺服器。 服務端程式碼如下:

WebService學習(二):建個簡單的webservice服務客戶,順便測試一下

程式碼很簡單,直接如下: 該demo下載地址為: https://download.csdn.net/download/shenhaiyushitiaoyu/10801668 程式碼部分 //介面 package com.fei.demo.inter; pub

Scala入門到精通——第十八節 隱式轉換與隱式引數

本節主要內容 隱式轉換簡介 隱式轉換函式 隱式轉換規則 隱式引數 1. 隱式轉換簡介 在scala語言當中,隱式轉換是一項強大的程式語言功能,它不僅能夠簡化程式設計,也能夠使程式具有很強的靈活性。要想更進一步地掌握scala語言,瞭解其隱式轉換的作

webservice、sockethttp 區別

webservice是基於http協議的soap協議的封裝和補充,如果你考慮公共穩定的介面,你可以努力的考慮一下。至於socket和http、webservices是否放在一起比較和考慮主要還是看你關心的角度,而這個角度可以是技術層面的 ,也可以是使用者需求層面1 資料傳輸

編寫webservice服務客戶例項1

1、首先建立介面 @WebService public interface IMyService { //@WebResult(name="addResult")public Integer add(Integer num1,Integer num2);//@WebPara

用AXIS2釋出WebService的方法 使用eclipse外掛生成服務客戶

  一、Axis2的下載和安裝      1.可從http://ws.apache.org/axis2/ 下載Axis2的最新版本:       可以下載如下三個zip包:       axis2-eclipse-service-plugin-1.7.1.zip  

利用myeclipse建立webservice服務客戶

一、建立webservice服務端:   1、新建一個web service project,名稱為webservice_server截圖如下,點選finish. 2、選擇工程,點選右鍵,選擇new->other,選擇myelipse中的webservice

Spring基於註解形式的 AOP的原理流程及原始碼解析

在Spring的配置類上添加註解@EnableAspectJAutoProxy: @Configuration @EnableAspectJAutoProxy(proxyTargetClass = true) public class MvcContextCo

SpringCloud入門 - SpringCloudConfig分散式配置中心【搭建服務客戶

前言:微服務架構中,每個專案都有一個yml配置,管理起來麻煩。可以使用spring cloud config來統一管理  Spring Cloud Config是什麼?       在分散式系統中,由於服務數量巨多,為了

服務客戶連線的兩種方式,socketDatagramSocket

socket有兩種方式,一種是Serversocket(服務端)和socket(客戶端)的方式(基於tcp/ip的通訊方式)另一種是DatagramSocket(客戶端和服務端)的方式(基於udp的通訊方式)第一種服務端需要繫結埠和ip,客戶端監聽服務端時需要知道服務端的埠和ip(可以不用繫結客戶端的埠和ip

使用ssh方式git clone遠端版本庫遇到的坑

在git clone ssh://….的時候報錯: nable to negotiate with : no matching key exchange method found. Their of

最最最高效方式 獲取當天的開始時間結束時間Java

public static void main(String[] args) { SimpleDateFormat fmt1= new SimpleDateFormat("yyyy-

用axis生成webservice服務客戶程式碼

最近,接手了公司java webservice部分的開發,攢了一些經驗,為了避免後續把它丟到太空去了,現抽時間把過程記錄下來。 1、webservice服務端 1)新建web project 2)新建webservice  3)選擇對應的wsdl檔案直接生成服務端程式碼

node.js中ws模組建立服務客戶,網頁客戶

1.node.js中ws模組建立服務端// 載入node上websocket模組 ws; var ws = require("ws"); // 啟動基於websocket的伺服器,監聽我們的客戶端接入

node.js中ws模塊創建服務客戶,網頁WebSocket客戶

socket 如果 創建服務 function ket socket客戶端 console serve 數據 1.node.js中ws模塊創建服務端 // 加載node上websocket模塊 ws; var ws = require("ws"); // 啟

WebService技術,服務and客戶JDK-wsimport工具

get png pub keep image 圖形化 als ava 名稱 使用webservice服務,需要了解幾個名詞:soap 簡單對象協議、http+xml 、 WSDL 先看下代碼結構: 服務端代碼與客戶端代碼分別處於兩不同的包中 一、服