Java Web·þÎñÖ®¡°´ÓWSDLÎĵµÖÐÉú³É¿Í»§¶ËÖ§³Ö´úÂ롱
±¾ÎĽÚÑ¡×Ô¡¶Java Web·þÎñ£º¹¹½¨ÓëÔËÐС·2.1.1½Ú
´ÓWSDLÎĵµÖÐÉú³É¿Í»§¶ËÖ§³Ö´úÂ루Generating Client-Support Code from a WSDL£©
ͨ¹ýJavaÌṩµÄ“wsimport”¹¤¾ß¿ÉÒÔºÜÈÝÒ×Íê³É»ùÓÚSOAPÐÒéµÄWeb·þÎñ¿Í»§¶ËÉú³É¹¤×÷¡£Õâ¸ö¹¤¾ß¿ÉÒÔ´Ó¶ÔÓ¦µÄWSDLÎĵµµÄ·þÎñÃèÊöÖÐÉú³É¿Í»§¶ËÖ§³Ö´úÂë»òÆäËûÏà¹Ø×ÊÔ´¡£ÊäÈë²¢Ö´ÐÐÈçÏÂÃüÁ
% wsimport
Ö´Ðк󣬽«»á´òÓ¡³ö¸ÃÃüÁî³ÌÐòµÄʹÓðïÖú¡£ÏÂÃæÎÒÃǽ«Í¨¹ý´ËÃüÁ¾ßΪTimeServer·þÎñ²úÉú¿Í»§¶Ë¿ª·¢µÄÏà¹ØÖ§³Ö´úÂë¡£
Æô¶¯ch01.ts.TimeServerPublisher³ÌÐòºó£¬Ö´ÐÐÈçÏÂÃüÁ
% wsimport -keep -p client http://localhost:9876/ts?wsdl
Ö´Ðк󽫻áÔÚ“client”×ÓĿ¼ÏÂÃæ²úÉúÁ½¸öÔ´´úÂëÎļþºÍÁ½¸öÓëÖ®¶ÔÓ¦µÄÒѾ±àÒëºÃµÄClassÎļþ¡£ÃüÁîÐÐ×îºóÃæµÄURLµØÖ·£¬ºÍÇ°Ãæ×î³õÓÉPerl¡¢RubyºÍJavaÓïÑÔ±àдµÄ¿Í»§¶ËÇëÇóWeb·þÎñ¶ÔÓ¦µÄWSDLÎĵµÊ±Ëù¸ø³öµÄ·þÎñÆõÔ¼µØÖ·Ò»Ñù¡£“-p”Ñ¡ÏîÓÃÀ´Ö¸¶¨Éú³ÉµÄJava°üÃû³Æ£¬´Ë´¦Ê¹ÓÓclient”×÷Ϊ°üÃû³Æ¡£°üÃû³Æ¿ÉÒÔÊÇ·ûºÏJava°üÃüÃû¹æÔòµÄÈκÎÃû³Æ£¬wsimport¹¤¾ßͨ¹ýÖ¸¶¨µÄ°üÃû³Æ´´½¨°ü¶ÔÓ¦×ÓĿ¼¡£“-keep”Ñ¡ÏîÓÃÀ´Ö¸Ê¾ÊÇ·ñ±£Áô±àÒëºóµÄÔ´Îļþ£¬Õâ¸öÀý×ÓÖУ¬ÎÒÃDZ£ÁôÔ´ÎļþÁô×÷ÑéÖ¤¡£“-p”Ñ¡ÏîÊDZȽÏÖØÒªµÄ£¬ÕâÊÇÓÉÓÚwsimportÃüÁî²úÉúµÄTimeServer.classÎļþÃû³ÆͬÏÈÇ°±àÒëµÄ·þÎñ¶Ëµã½Ó¿Ú£¨SEI£¬Service Endpoint Interface£©ÓµÓÐͬÑùµÄÃû×Ö¡£Èç¹ûûÓÐÖ¸¶¨°üÃû³Æ£¬wsimportĬÈÏʹÓ÷þÎñʵÏֵİüÃû³Æ×÷Ϊ¿Í»§¶Ë´úÂë°üÃû³Æ£¬´Ë´¦½«»áĬÈÏʹÓÓch01.ts”×÷Ϊ°üÃû³Æ¡£¼òµ¥À´Ëµ£¬Ê¹ÓÓ-p”Ñ¡Ïî¿ÉÒÔ·ÀÖ¹±àÒëºÃµÄSEIÎļþ²»±»wsimport¹¤¾ß²úÉúµÄÎļþ¸²¸Ç¡£Èç¹ûÒѾ½«WSDLÎĵµ±£´æÔÚ±¾µØ£¨±ÈÈ磬Îļþ±»ÃüÃûΪts.wsdl£©£¬ÄÇô£¬wsimport¿ÉÒÔд³É£º
% wsimport -keep -p client ts.wsdl
ʾÀý2-2ºÍʾÀý2-3ÊÇÓÉwsimportËùÉú³ÉµÄÁ½¸öJavaÔ´Îļþ£¬²»¹ýÕâÀïɾ³ýÁËwsimport¹¤¾ßÉú³ÉµÄ×¢ÊÍÄÚÈÝ¡£
ʾÀý2-2£ºÓÉwsimportÉú³ÉµÄTimeServer·þÎñ½Ó¿Ú
package client;
import javax.jws.WebMethod;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(name = "TimeServer", targetNamespace = "http://ts.ch01/")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface TimeServer {
@WebMetho
Ïà¹ØÎĵµ£º
ºËÐÄ˼Ï룺°Ñº¬main·½·¨µÄÈë¿ÚÀàÌí¼Óµ½MANIFEST.MFÎļþÖС£
²½Ö裺
¼ÙÉèÓÐÁ½¸öÀàÎļþÒª´ò°ü£¬ËüÃÇ·Ö±ðÊôÓÚ²»Í¬µÄpackage¡£
package com.test.jar;
import java.awt.*;
import javax.swing.*;
public class Jar extends JFrame
{ ......
±êÌâ ÔÚJavaÖÐʵÏÖ¸¡µãÊýµÄ¾«È·¼ÆËã AYellow£¨Ô×÷£© ÐÞ¸Ä
¹Ø¼ü×Ö Java ¸¡µãÊý ¾«È·¼ÆËã
ÎÊÌâµÄÌá³ö£º
Èç¹ûÎÒÃDZàÒëÔËÐÐÏÂÃæÕâ¸ö³ÌÐò»á¿´µ½Ê²Ã´£¿
public class Test{
public static void mai ......
ÕâÊÇÒ»¸ö¼òµ¥µÄ·ÂÕæ³ÌÐò:
ÔÚÕâ¸ö·ÂÕæ³ÌÐòÖÐ,»¨Ô°Î¯Ô±»á¶¼Ï£ÍûÁ˽âÿÌìͨ¹ý´óÃŽøÈ빫԰µÄ×ÜÈËÊý.ÿ¸ö´óÃŶ¼ÓÐÒ»¸öÊ®×Ö
תÃÅ»òijÖÖÆäËûÐÎʽµÄ¼ÆÊýÆ÷,²¢ÇÒÈκÎÒ»¸öÊ®×ÖתÃŵļÆÊýÆ÷µÝÔöʱ,¾Í±íʾ¹«Ô°ÖеÄ×ÜÈËÊýµÄ¹²Ïí
¼ÆÊýÖµÒ²»áµÝÔö
package OrnamentalGarden;
import java.util.Random;
/**
* ÕâÀïʹÓõ¥¸öµ ......
Java™ ÓïÑÔ°üº¬Á½ÖÖÄÚÔÚµÄͬ²½»úÖÆ£ºÍ¬²½¿é£¨»ò·½·¨£©ºÍ volatile ±äÁ¿¡£ÕâÁ½ÖÖ»úÖƵÄÌá³ö¶¼ÊÇΪÁËʵÏÖ´úÂëÏ̵߳ݲȫÐÔ¡£ÆäÖÐ Volatile ±äÁ¿µÄͬ²½ÐԽϲµ«ÓÐʱËü¸ü¼òµ¥²¢ÇÒ¿ªÏú¸üµÍ£©£¬¶øÇÒÆäʹÓÃÒ²¸üÈÝÒ׳ö´í¡£ÔÚÕâÆÚµÄ Java ÀíÂÛÓëʵ¼ù
ÖУ¬Brian Goetz ½«½éÉܼ¸ÖÖÕýȷʹÓà volatile ±äÁ¿µÄģʽ£¬²¢Õë¶ÔÆäÊÊÓ ......