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
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
JDK1.4ÖÐ
Map map = new HashMap();
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
}
JDK1.5ÖÐ,Ó¦ÓÃÐÂÌØÐÔFor-EachÑ»·
Map m = new HashMap(); ......
ʹÓÃJ2SEAPI¶ÁÈ¡PropertiesÎļþµÄÁùÖÖ·½·¨
¡¡¡¡1¡£Ê¹ÓÃjava.util.PropertiesÀàµÄload()·½·¨Ê¾Àý£ºInputStream in=lnew BufferedInputStream(new FileInputStream(name));
properties p=newProperties(); p.load(in);
¡¡¡¡2¡£Ê¹ÓÃjava.util.ResourceBundleÀàµÄgetBundle()·½·¨Ê¾Àý£ºResourceBundle rb=ResourceBu ......
ÕâÊÇÒ»¸ö¼òµ¥µÄ·ÂÕæ³ÌÐò:
ÔÚÕâ¸ö·ÂÕæ³ÌÐòÖÐ,»¨Ô°Î¯Ô±»á¶¼Ï£ÍûÁ˽âÿÌìͨ¹ý´óÃŽøÈ빫԰µÄ×ÜÈËÊý.ÿ¸ö´óÃŶ¼ÓÐÒ»¸öÊ®×Ö
תÃÅ»òijÖÖÆäËûÐÎʽµÄ¼ÆÊýÆ÷,²¢ÇÒÈκÎÒ»¸öÊ®×ÖתÃŵļÆÊýÆ÷µÝÔöʱ,¾Í±íʾ¹«Ô°ÖеÄ×ÜÈËÊýµÄ¹²Ïí
¼ÆÊýÖµÒ²»áµÝÔö
package OrnamentalGarden;
import java.util.Random;
/**
* ÕâÀïʹÓõ¥¸öµ ......
µÚÒ»²¿·Ö. Ìáʾ
ÎÒÐèÒª¶ÁÕâÆªÎÄÕÂÂð£¿
JavaÀà¼ÓÔØÆ÷¶ÔJavaϵͳµÄÔËÐÐÊÇÖÁ¹ØÖØÒªµÄ£¬µ«ÊÇÈ´³£³£±»ÎÒÃǺöÂÔ¡£JavaÀà¼ÓÔØÆ÷¸ºÔØ
ÔÚÔËÐÐʱ²éÕҺͼÓÔØÀà¡£×Ô¶¨ÒåÀà¼ÓÔØÆ÷¿ÉÒÔÍêÈ«¸Ä±äÀàµÄ¼ÓÔØ·½Ê½£¬ÒÔ×Ô¼ºÏ²»¶µÄ·½Ê½À´
¸öÐÔ»¯ÄãµÄJavaÐéÄâ»ú¡£±¾ÎļòÒªµÄ½éÉÜJavaÀà¼ÓÔØÆ÷£¬È»ºóͨ¹ýÒ»¸ö¹¹Ôì×Ô¶¨ÒåÀà¼ÓÔØÆ÷
µÄÀý×ÓÀ´ËµÃ÷£¬Õâ ......