ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>在线精品视频在线观看高清,97中文在线,天堂精品在线视频http://www.aygfsteel.com/richardeee/category/17652.html雪飞快去å–é™å¿?/description>zh-cnFri, 02 Mar 2007 03:12:06 GMTFri, 02 Mar 2007 03:12:06 GMT60ã€è{】当SOAé‡åˆ°Web 2.0—Java EE的中‘³ä¹‹å¤?/title><link>http://www.aygfsteel.com/richardeee/archive/2006/12/23/89670.html</link><dc:creator>Zou Ang</dc:creator><author>Zou Ang</author><pubDate>Sat, 23 Dec 2006 09:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/richardeee/archive/2006/12/23/89670.html</guid><wfw:comment>http://www.aygfsteel.com/richardeee/comments/89670.html</wfw:comment><comments>http://www.aygfsteel.com/richardeee/archive/2006/12/23/89670.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/richardeee/comments/commentRss/89670.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/richardeee/services/trackbacks/89670.html</trackback:ping><description><![CDATA[原脓(chu¨¤ng)地å€åQ?br /><a >http://news.csdn.net/n/20061221/99748.html</a><br /><br /><p>从根本上è¯ß_(d¨¢)¼Œé¢å‘æœåŠ¡çš„æž¶æž„èƒ½å¤Ÿä‹Éä¼ä¸šå†…éƒ¨åŠ¨æ€æ•°æ®æœåŠ¡çš„åˆ›å¾å˜å¾—更加方便åQŒåŒæ—Óž¼Œ˜q˜èƒ½å¤Ÿä‹Éä¼ä¸šå¼€å‘äh员创建媄(ji¨£ng)å“这些æœåŠ¡çš„å¤åˆåº”用½E‹åºã€‚Web2.0æä¾›äº†ä¸€ä¸ªä¸°å¯Œçš„Web体验åQŒç”¨æˆ¯‚ƒ½å¤Ÿä»¥é«˜æ•ˆçš„ã€å……æ»¡å¸Œæœ›çš„ã€æœ‰ç›Šçš„æ–¹å¼å‚与åˆä½œã€? </p><p>  如果我们把这两个现象¾l“åˆèµäh¥åQŒé‚£ä¹ˆï¼Œé€šè¿‡ä¼ä¸š½C‘Ö›¢æˆå‘˜ä¹‹é—´çš„äº’ç›æ€º¤‹¹ï¼Œä»¥åŠ(qi¨¢ng)æˆå‘˜ä¸Žä¸æ–­å˜åŒ–çš„ä¼ä¸šæ•°æ®ä¹‹é—´çš„交互,我们ž®Þpƒ½å¤Ÿå®žçŽ°è¿™ä¸€å…³é”®çš„æé«˜æ•ˆçŽ‡çš„æ–°æ–¹æ³•ã€?/p><p>  å作型ä¼ä¸šç›¸äº’èžåˆï¼Œä¸‹ä¸€ä»£çš„Web应用½E‹åºä¹Ÿå·²éœ²ç«¯å€ªï¼Œä½†æ˜¯åQŒå¼€å‘团体的推测是,ä¸ÞZº†å®žçŽ°æ˜Žæ˜¾çš„åˆ©ç›Šï¼Œä¼ä¸šæ‰€é‡‡ç”¨çš„å„¿UæŠ€æœ¯ä¹‹é—´å­˜åœ¨ç€æ ÒŽ(gu¨©)œ¬æ€?的差异。标准必™åÀLœå“ªä¸ªæ–¹å‘å‘展æ‰èƒ½å¤Ÿæ»¡­‘³SOA与Web2.0概念的结åˆï¼Œä¸ÞZº†æ›´å¥½çš„ç†è§£è¿™ä¸ªé—®é¢˜ï¼Œæˆ‘们ž®†è‡´åŠ›äºŽ‹‚€(g¨¨)验Java表示技术的状æ€ã€?/p><p>  <strong>Ajax化JavaServer Faces</strong></p><p>  标准奠定了SOA的基本结构,但是åQŒåœ¨Web2.0的世界中å´ä¸å­˜åœ¨ç€æ ‡å‡†ã€‚䨓(f¨´)了支æŒWeb2.0的功能,市场上出çŽîCº†å¤ªå¤šçš„æ–¹æ³•,其中大多æ•?在JavaScript的实çŽ?å½±å“Ajax的技æœ?上å´éžå¸¸¾Jæ‚。在Java EE的规范中åQŒJavaServer Facesæä¾›äº†è¡¨½Cºå±‚åQŒä½†æ˜¯ï¼Œç›¸æ¯”èµ·Ajax技术和W(xu¨¦)eb2.0概念的æµè¡Œï¼Œå®ƒç›®å‰çš„修订版出现的更早ã€?/p><p>ã€€ã€€äº‹å®žè¯æ˜ŽåQŒåœ¨¾l„äšg层,JSFä¸­çš„å¯æ‰©å±•组件架构éžå¸”R€‚åˆä¸ŽAjax技术ååŒä‹É用,但是åQŒç»„件层Ajax技术存在的问题是,它们是存在于狭å°çš„è§„ é¿JSF生命周期的交互空间内。解册™¿™ä¸€é—®é¢˜æ‰€éœ€è¦çš„æ˜¯ï¼Œä¸€¿U更加全é¢çš„æ–¹å¼åQŒä»¥å®žçŽ°åœ¨JSF生命周期内的Ajax交互。具体æ¥è¯ß_(d¨¢)¼Œæœ‰ä»¥ä¸‹ä¸¤ç‚šwœ€è¦ç€é‡é˜ ˜q°ã€?/p><p>  1.改进的用户交互模åž? 在JSF中,目å‰çš„用户交互模型是åŸÞZºŽè¡¨æ ¼çš„,它过于粗略而无法传输丰富的Web2.0ç‰ÒŽ(gu¨©)€§ã€‚组件层的Ajax交互¾_’度åQŒä»¥å?qi¨¢ng)JSFç›®å‰ä¾èµ–的基于表格的å­ä“Q务模型,˜q™ä¸¤è€…ä¹‹é—´å­˜åœ¨ç€æ˜¾è‘—的差异。交互类型应当包å«ä»¥ä¸‹å‡ ¿UåÅžå¼ï¼š(x¨¬)</p><ul><li>  ¾U¯çÑa(b¨³)的本地客æˆïL(f¨¥ng)«¯JavaScript交互åQŒæ²¡æœ‰æœåŠ¡å™¨é€šä¿¡ã€ä¸éœ€è¦æ‰§è¡ŒJSF生命周期。这¿U类型的例å­å¯ä»¥æ˜¯ï¼Œåœ¨æ—¥æœŸé€‰æ‹©¾l„äšg中通过日历æ¥è¿›è¡Œå¯¼èˆªã€‚ç›®å‰ï¼Œé€šè¿‡¾l„äšg层JavaScript实现能够支挘q™ä¸ªæ¨¡åž‹ã€? </li><li>  ¾l„äšg层的Ajax交互åQŒä¸éœ€è¦æ‰§è¡ŒJSF生命周期。这¿U类型的例å­å¯ä»¥æ˜¯ï¼ŒåŸÞZºŽå½“å‰ç”¨æˆ·åœ¨æ–‡æœ¬æ¡†ä¸­çš„输入åQŒä»Žè€ŒåÅžæˆä¸€ä¸ªåˆ—表。这里的关键是,用户与组件的交互仅仅影å“到该¾l„äšg的表½Cºã€‚åŒæ øP¼Œç›®å‰åQŒé€šè¿‡¾l„äšg层JavaScript实现能够支挘q™ä¸ªæ¨¡åž‹ã€? </li><li>  ¾l„äšg层的æäº¤åQŒå¼•å‘JSF生命周期的执行。生命周期的执行¾l“æžœž®†æˆä¸ºæ–°çš„表½Cºï¼Œè¯¥è¡¨½Cºå¯èƒ½ä¼š(x¨¬)å½±å“到页é¢ä¸­çš„多¿U组件。这˜q™ç§¾cÕdž‹çš„例å­å¯ä»¥æ˜¯åQŒåœ¨æ—¥æœŸé€‰æ‹©¾l„äšgä¸­å®Œæˆæ—¥æœŸçš„选择åQŒç»“æžœæ˜¯å¼•å‘æ˜„¡¤ºä¸åŒçš„æ—¥æœŸå®‰æŽ’ä¿¡æ¯ã€‚ç›®å‰åœ¨JSF中,˜q˜æ— æ³•支æŒè¿™¿UåÅžå¼çš„交互ã€?</li></ul><p>  2. 增é‡è¡¨ç¤ºæ›´æ–°: ä¸ÞZº†ä½¿ç”¨Ajaxian æ–¹å¼(䏿˜¯™åµé¢åˆäh–°)实现½W¬ä¸‰¿U交互模型,JSF需è¦ä¸€ä¸ªå¢žé‡æ›´æ–°æœºåˆÓž¼Œä»…仅是把™åµé¢ä¸­åº”用到的表½Cºå±‚所åšçš„å¿…è¦ä¿®æ”¹ä»Žä¸€ä¸ªè¡¨çް处ç†ä¼ å‘下一个表现处ç†ã€?下题q™ä¸ªå›„¡¤ºè¡¨æ˜Žäº†è¿™ä¸ªæ¦‚å¿üc(di¨£n)€‚它需è¦ä¸€ä¸ªAjax桥,在æœåŠ¡å™¨ç«¯æŠŠè¡¨ç¤ºçš„æ”¹å˜ç»„åˆè“væ¥ï¼Œåœ¨å®¢æˆïL(f¨¥ng)«¯çš„DOM把那些å˜åŒ–釾l„ã€?/p><p><strong>JSF Push模å¼</strong></p><p>  Ajaxified JSF实现和多数其它的Ajaxæ–¹å¼ä»Žé—留的Web应用½E‹åºæ¨¡åž‹ä¸­ç‘ô承了一个共åŒçš„特å¾åQŒè¯¥æ¨¡åž‹æ˜¯ä¸€ä¸ªå®¢æˆïL(f¨¥ng)«¯å‘è“v的交互模型。这æ„味ç€åQŒå®¢æˆïL(f¨¥ng)«¯çš„表½Cºå±‚åªéœ€è¦é’ˆå¯¹ç”¨æˆ·ä¸Žè¡¨ç¤ºå±‚的交互˜q›è¡Œç›¸åº”å˜åŒ–ã€?/p><p>  与ä‹É用é—留应用程åºç›¸æ¯”,使用Ajax技术,˜q™ä¸ªäº¤äº’是细¾_’度的,但是åQŒå®ƒä»ç„¶æ˜¯å®¢æˆ·å‘èµïL(f¨¥ng)š„。现在,当你‹‚€(g¨¨)验支æŒåº”用程åºçš„SOAæ•°æ®æ¨¡åž‹çš„动 æ€ç‰¹æ€§ã€äº†è§£ä¼—å¤šåŒæ­¥ç”¨æˆ·é‡‡ç”¨è¿™ä¸€åŠ¨æ€æ•°æ®æ‰€˜q›è¡Œçš„å调互æ“作æ—Óž¼Œä½ å°±èƒ½å¤Ÿæ„识刎ͼŒåœ¨å®¢æˆïL(f¨¥ng)«¯æŽ¨åŠ¨åŠ¨æ€è¡¨½Cºå˜åŒ–的机制是éžå¸”R‡è¦çš„åQŒè¿™ä¸€ç‚¹è¶Šæ¥è¶Šæ¸…晰。它æ˜?辑ֈ°Web2.0模型所需è¦çš„真正的动æ€ç‰¹æ€§çš„唯一途径ã€?/p>在äñ”业中已ç»è¯æ˜ŽåQŒå¯¹äºŽJSF规范与一个表½Cºpush模型的å作æ¥è¯ß_(d¨¢)¼ŒAjax push技术,也指CometåQŒæ˜¯å分必è¦çš„ã€‚å‰æ–‡å·²¾læ˜q°çš„˜q™ä¸ªå¢žé‡æ›´æ–°ç‰ÒŽ(gu¨©)€§ï¼Œæä¾›äº†åœ¨å®žçްJSF Pushæ¨¡å¼æ—¶æ‰€éœ€è¦çš„åŸÞZºŽAjax的更新机制。除此之外,当应用程åºé€»è¾‘å‘现出现了一些将ä¼?x¨¬)åª?ji¨£ng)å“客æˆïL(f¨¥ng)«¯è¡¨ç¤ºå±‚状æ€çš„å˜åŒ–æ—Óž¼Œå»‰™•¿JSF的生命周期æ¥å…许 ä¸€ä¸ªå¼ºåˆ¶çš„è¡¨çŽ°å¤„ç†æ˜¯å¾ˆæœ‰å¿…è¦çš„ã€?br /><br />虽然åQŒJSF push模型相对而言实现èµäh¥æ›´åŠ å®ÒŽ(gu¨©)˜“åQŒä½†æ˜¯ï¼Œç”Ÿäñ”¾l验表明åQŒäØ“(f¨´)使得开å‘äh员能够有效ç‘ô承,仅仅暴露JSF API中底层强制的表示机制是远˜qœä¸å¤Ÿçš„。关于基本的push机制åQŒJSF规范很有必è¦å¯¹è¡¨çްAPI˜q›è¡Œä»‹ç»åQŒä»Žè€Œå‘ˆçŽ°ç»™å¼€å‘äh员一个清晰有效的机制åQŒç”¨ 于请求强制表½Cºã€‚APIž®¤å…¶éœ€è¦æä¾›ä»¥ä¸‹å‡ ä¸ªæ–¹é¢ï¼š(x¨¬) <p>  1.触å‘的表çŽ?应用½E‹åºå¼€å‘äh员应当能够在å‘出表示处ç†è¯äh±‚的业务逻辑中定义触å‘点ã€?/p><p>  2. ¾Ÿ¤ç»„表现: 一个触å‘点能够影å“一个å•一客户端ã€å¤šä¸ªå®¢æˆïL(f¨¥ng)«¯åQŒæˆ–者是所有连接到该应用程åºä¸Šçš„客æˆïL(f¨¥ng)«¯ã€‚å› æ­¤ï¼Œä¸ø™§¦å‘表现æä¾›ç¾¤¾l„管ç†ç»“构,˜q™æ˜¯å¾ˆæœ‰å¿…è¦çš„ã€?/p><p>  3. 预定的表çŽ?有许多åˆé€‚的计划机制应当被支æŒï¼ŒåŒ…括åQŒæŒ‰éœ€è¡¨çŽ°ã€æŽ¨˜qŸè¡¨çŽŽÍ¼Œä»¥åŠ(qi¨¢ng)å†…éƒ¨è¡¨çŽ°ã€‚é¢„å®šçš„è¡¨çŽ°æž¶æž„åº”å½“å…·å¤‡å¯æ‰©å±•性,以支æŒå…¶ä»–用户预先设定的需 求。很é‡è¦çš„一ç‚ÒŽ(gu¨©)˜¯åQŒè§¦å‘表现机制应当能够更加有效的传输。由于存在ç€å¤§é‡çš„触å‘,它们潜在åœîC»¥å„ç§æ–¹å¼å½±å“ç€å®¢æˆ·ç«¯ï¼Œå› æ­¤åQŒç®¡ç†è¡¨çŽ°çš„å¤„ç†˜q™ä¸€ä»ÕdŠ¡ä¸èƒ½ ä»…ä»…è½åœ¨å¼€å‘äh员èín上。触å‘表现的实现åQŒå¿…™åÀLœ‰æ•ˆåœ°åˆåƈ表现处ç†è¯äh±‚ã€å¤„ç†å¿…è¦çš„åŒæ­¥åQŒè€Œä¸”åQŒè¿™äº›æ“作都是以一¿U线½E‹æœ‰æ•ˆçš„æ–¹å¼ã€?/p><p>  <strong>多视图支æŒ?/strong></p><p>ã€€ã€€çŽ°å­˜çš„äØ“(f¨´)JSF定义的阶ŒDµå’Œéœ€æ±‚范å›ß_(d¨¢)¼Œæ ÒŽ(gu¨©)œ¬ä¸èƒöä»¥æ”¯æŒæ»¡­‘³Ajaxçš„JSF应用½E‹åºâ€”—用戯‚ƒ½å¤Ÿåœ¨åŒä¸€åº”用½E‹åºä¸ŠèŽ·å¾—å¤šä¸ªæ´»åŠ¨è§†å›¾ã€‚é˜¶ŒDµèŒƒå›´èƒ½ 够维护所有视囑օ±åŒçš„状æ€ï¼Œä½†æ˜¯åQŒå®ƒä¸èƒö以处ç†è§†å›¾ä¹‹é—´ä¸åŒçš„状æ€ã€‚ç”±äºŽå¤šä¸ªåŒæ­¥è¯·æ±‚都必须是活动状æ€ï¼Œæ‰€ä»¥ï¼Œéœ€æ±‚范围也ä¸å……分。因此,需è¦ä¸€ä¸ªæ–°çš„范 å›ß_(d¨¢)¼Œæ¥ç®¡ç†æ»¡­‘³Ajax çš„JSF应用½E‹åºçš„会(x¨¬)è¯æ–¹é¢ã€‚JBossçš„Seam æ–ÒŽ(gu¨©)¡ˆæå‡ºäº†ä¼š(x¨¬)è¯èŒƒå›ß_(d¨¢)¼Œå®ƒä¸»è¦æä¾›JSF中所需è¦çš„é¢å¤–范围。除了支æŒå¤šè§†å›¾ä¹‹å¤–åQŒä¼š(x¨¬)è¯èŒƒå›´è¿˜èƒ½å¤Ÿå¸¦æ¥å…¶ä»–优势åQŒä¾‹å¦‚,在应用程åºä¸­åQŒé€šè¿‡ä¼?x¨¬)è¯ä¸­å¯¹ä¸€¾pÕdˆ—ç”?户交互的明确æè¿°åQŒå°±èƒ½å¤Ÿæœ‰æ•ˆåœ°æ”¯æŒä¹¦½{‘Ö’Œ˜q”回按钮ç‰ÒŽ(gu¨©)€§ã€?/p><p>  <strong>长期存在的HTTPè¯äh±‚</strong></p><p>  回到å‰é¢æ‰€æåˆ°çš„push模型åQŒä½ å¯èƒ½æ³¨æ„刎ͼŒæœºåˆ¶éœ€è¦ä¸€ä¸ªç‰¹ŒDŠçš„HTTPè¯äh±‚åQŒå®ƒèƒ½å¤Ÿå¼‚步地å“应从应用½E‹åºä¸­å‘出的触å‘表现出ç†è¯äh±‚ã€‚ä¾æ®æ›´ 新的频率åQŒè¿™ä¸ªç‰¹ŒDŠHTTPè¯äh±‚能够长期存在。由于在å“应之å‰åQŒæ¯ä¸€ä¸ªè¯·æ±‚都å ç”¨å…¶çº¿½E‹ï¼Œæ‰€ä»¥ï¼Œåœ¨å¤„ç†è¿™ä¸ªé•¿æœŸå­˜åœ¨çš„è¯äh±‚æ—Óž¼ŒçŽ°å­˜çš„Servlet模型æ—?法很好的å“应。因此,ä¸ÞZº†æ”¯æŒpush模型åQŒå¿…™åÕd¯¹Servlet模型˜q›è¡Œæ”¹å˜åQŒä‹É它能够以¾U¿ç¨‹æœ‰æ•ˆçš„æ–¹å¼æ¥å¤„ç†é•¿æœŸå­˜åœ¨çš„请求。å†å¼ø™°ƒä¸€‹Æ¡ï¼Œæœ‰å¾ˆå¤šç”Ÿäº?æ–ÒŽ(gu¨©)¡ˆä¸Žå¼‚æ­¥Servletså’ŒHTTPæœåŠ¡å™¨ç›¸å…»I¼ŒJava EE规范能够在此基础上定义一个解å†Ïx–¹æ¡ˆã€?/p><p>  <strong>¾l“论</strong></p><p>  äºÞZ»¬ä»ç„¶æœ‰äº›è´¨ç–‘åQšSOA与Web2.0世界ž®†ä¼š(x¨¬)å‘生抵触åQŒæ–°ä¸€ä»£çš„å作型ä¼ä¸šåº”用程åºå·²éœ²ç«¯å€ªã€‚也存在瀘q™æ ·çš„质疑,现存的Java EE规范无法完全处ç†Web2.0æå‡ºçš„请求,以åŠ(qi¨¢ng)JSR处ç†å¿…须开始在直接™å¹ä¸­è€ƒè™‘˜q™äº›è¯äh±‚。然而,产业中的é‡å¤§˜q›æ­¥åQŒå·²¾l能够处ç†å‡ºçŽ°çš„è¯äh±‚åQŒåƈ且能 够实现扩展现存Java EE基础¾l“构的商业化的å¯è¡Œæ–¹æ¡ˆã€‚峞®†ä‹É用JSR 172æ¥ç”ŸæˆJSF2.0规范åQŒéžå¸”R‡è¦çš„æ˜?包å«Ajaxç‰ÒŽ(gu¨©)€§ï¼Œä»¥åŠ(qi¨¢ng)产业å‚与者èµA(ch¨³)献相å…ÏxŠ€æœ?æ¥ç¡®ä¿èƒ½å¤ŸåŠ(qi¨¢ng)æ—¶åšå‡ºåŸºäºŽæ ‡å‡†çš„解决æ–ÒŽ(gu¨©)¡ˆã€?/p><img src ="http://www.aygfsteel.com/richardeee/aggbug/89670.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/richardeee/" target="_blank">Zou Ang</a> 2006-12-23 17:39 <a href="http://www.aygfsteel.com/richardeee/archive/2006/12/23/89670.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>Web Service学习(f¨¤n)日记-11æœ?0æ—?讉K—®Amazonhttp://www.aygfsteel.com/richardeee/archive/2006/11/30/84693.htmlZou AngZou AngThu, 30 Nov 2006 15:32:00 GMThttp://www.aygfsteel.com/richardeee/archive/2006/11/30/84693.htmlhttp://www.aygfsteel.com/richardeee/comments/84693.htmlhttp://www.aygfsteel.com/richardeee/archive/2006/11/30/84693.html#Feedback0http://www.aygfsteel.com/richardeee/comments/commentRss/84693.htmlhttp://www.aygfsteel.com/richardeee/services/trackbacks/84693.htmlAmazon Web Service çš„WSDL: http://soap.amazon.com/schemas2/AmazonWebServices.wsdl
得到了WSDL以åŽ,在命令行执行:
java org.apache.axis.wsdl.WSDL2Java http://soap.amazon.com/schemas2/AmazonWebServices.wsdl
ž®×ƒ¼š(x¨¬)åœ?AXIS_HOME%目录下生æˆä¸€ä¸ªåŒ…¾l“æž„:com.amazon.soap.*;é‡Œé¢æœ‰å¾ˆå¤šåŒ…,ä¸è¿‡å¦‚果看了上é¢é‚£ä¸ªwsdlçš„è¯åº”该知é“主è¦çš„ç±»æ˜?br />AmazonSearchServiceå’ŒAmazonSearchPort,å‰é¢æ˜¯æœåŠ?åŽé¢æ˜¯è°ƒç”¨æ–¹æ³•的对象..

AmazonSearchService:
public interface AmazonSearchService extends javax.xml.rpc.Service {
    
public java.lang.String getAmazonSearchPortAddress();

    
public com.amazon.soap.AmazonSearchPort getAmazonSearchPort() throws javax.xml.rpc.ServiceException;

    
public com.amazon.soap.AmazonSearchPort getAmazonSearchPort(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
}

AmazonSearchPort:
package com.amazon.soap;

public interface AmazonSearchPort extends java.rmi.Remote {
    
public com.amazon.soap.ProductInfo keywordSearchRequest(com.amazon.soap.KeywordRequest keywordSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo powerSearchRequest(com.amazon.soap.PowerRequest powerSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo browseNodeSearchRequest(com.amazon.soap.BrowseNodeRequest browseNodeSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo asinSearchRequest(com.amazon.soap.AsinRequest asinSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductLine[] blendedSearchRequest(com.amazon.soap.BlendedRequest blendedSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo upcSearchRequest(com.amazon.soap.UpcRequest upcSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo authorSearchRequest(com.amazon.soap.AuthorRequest authorSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo artistSearchRequest(com.amazon.soap.ArtistRequest artistSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo actorSearchRequest(com.amazon.soap.ActorRequest actorSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo manufacturerSearchRequest(com.amazon.soap.ManufacturerRequest manufacturerSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo directorSearchRequest(com.amazon.soap.DirectorRequest directorSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo listManiaSearchRequest(com.amazon.soap.ListManiaRequest listManiaSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo wishlistSearchRequest(com.amazon.soap.WishlistRequest wishlistSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ListingProductDetails exchangeSearchRequest(com.amazon.soap.ExchangeRequest exchangeSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.MarketplaceSearch marketplaceSearchRequest(com.amazon.soap.MarketplaceRequest marketplaceSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.SellerProfile sellerProfileSearchRequest(com.amazon.soap.SellerProfileRequest sellerProfileSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.SellerSearch sellerSearchRequest(com.amazon.soap.SellerRequest sellerSearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ProductInfo similaritySearchRequest(com.amazon.soap.SimilarityRequest similaritySearchRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ShoppingCart getShoppingCartRequest(com.amazon.soap.GetShoppingCartRequest getShoppingCartRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ShoppingCart clearShoppingCartRequest(com.amazon.soap.ClearShoppingCartRequest clearShoppingCartRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ShoppingCart addShoppingCartItemsRequest(com.amazon.soap.AddShoppingCartItemsRequest addShoppingCartItemsRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ShoppingCart removeShoppingCartItemsRequest(com.amazon.soap.RemoveShoppingCartItemsRequest removeShoppingCartItemsRequest) throws java.rmi.RemoteException;
    
public com.amazon.soap.ShoppingCart modifyShoppingCartItemsRequest(com.amazon.soap.ModifyShoppingCartItemsRequest modifyShoppingCartItemsRequest) throws java.rmi.RemoteException;
}


我打½Ž—调用keywordSearchRequest˜q™ä¸ªæ–ÒŽ(gu¨©)³•,˜q™ä¸ªæ–ÒŽ(gu¨©)³•有一个keywordRequest傿•°,˜q”回一个ProductInfo对象
public com.amazon.soap.ProductInfo keywordSearchRequest(com.amazon.soap.KeywordRequest keywordSearchRequest) throws java.rmi.RemoteException;
䏋颿˜¯è°ƒç”¨Web Service的类:
/**
 * org.zsu.zouang
 * 2006-11-30
 
*/

package org.zsu.zouang;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import com.amazon.soap.AmazonSearchPort;
import com.amazon.soap.AmazonSearchServiceLocator;
import com.amazon.soap.Details;
import com.amazon.soap.KeywordRequest;
import com.amazon.soap.ProductInfo;

/**
 * 2006-11-30
 * 
@author Zou Ang
 * Contact <a href ="mailto:richardeee@gmail.com">Zou Ang</a>
 
*/

public class MyAmazonClient {

    
/**
     * 
@param args
     
*/

    
public static void main(String[] args) {
        KeywordRequest keyword 
= new KeywordRequest();
        keyword.setKeyword(
"Java");
        keyword.setMode(
"books");
        keyword.setTag(
"D3HW0PG66IPLAM");
        keyword.setDevtag(
"D3HW0PG66IPLAM");
        keyword.setPage(
"1");
        keyword.setType(
"heavy");
        keyword.setSort(
null);
        keyword.setVariations(
null);
        keyword.setLocale(
null);
        
// TODO Auto-generated method stub
        try {
            AmazonSearchPort port 
= new AmazonSearchServiceLocator().getAmazonSearchPort();
            ProductInfo info 
= port.keywordSearchRequest(keyword);
            System.out.println(
"Number of Results :" + info.getTotalResults());
            Details[] details 
= info.getDetails();
            
for(Details d : details){
                System.out.println(
"ISBN :" + d.getIsbn() + " Name:" + d.getProductName());
            }

        }
 catch (RemoteException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
 catch (ServiceException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}
˜q”回的结æž?
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
Number of Results :
5161
ISBN :
0072253606 Name:SCJP Sun Certified Programmer for Java 5 Study Guide (Exam 310-055) (Certification Press Study Guides)
ISBN :
0596007124 Name:Head First Design Patterns (Head First)
ISBN :
0553803905 Name:Ship of Ghosts: The Story of the USS Houston, FDR's Legendary Lost Cruiser, and the Epic Saga of Her Survivors
ISBN :0596009410 Name:Mac OS X Tiger: Missing Manual
ISBN :
0596101996 Name:JavaScript: The Definitive Guide
ISBN :
0131483986 Name:Java How to Program (6th Edition) (How to Program (Deitel))
ISBN :
0596009208 Name:Head First Java, 2nd Edition
ISBN :
1591968097 Name:What is WebSphere? Java, J2EE, Portal and Beyond! (Demystifying IBM's Middle Tier Technology, Vol. 1)
ISBN :0596005407 Name:Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam (SCWCD)
ISBN :
1932394613 Name:Ajax in Action

下一步å¯èƒ½æ‰“½Ž—写个GUIçš„Amazonæœçƒ¦(ch¨³)客户ç«?img src ="http://www.aygfsteel.com/richardeee/aggbug/84693.html" width = "1" height = "1" />

]]>
Web Service学习(f¨¤n)日记-11æœ?9æ—?建立客户端访问Web Servicehttp://www.aygfsteel.com/richardeee/archive/2006/11/29/84428.htmlZou AngZou AngWed, 29 Nov 2006 14:15:00 GMThttp://www.aygfsteel.com/richardeee/archive/2006/11/29/84428.htmlhttp://www.aygfsteel.com/richardeee/comments/84428.htmlhttp://www.aygfsteel.com/richardeee/archive/2006/11/29/84428.html#Feedback4http://www.aygfsteel.com/richardeee/comments/commentRss/84428.htmlhttp://www.aygfsteel.com/richardeee/services/trackbacks/84428.html于是写了如下代ç :
/**
 * org.zsu.zouang
 * 2006-11-29
 
*/

package org.zsu.zouang;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

/**
 * 2006-11-29
 * 
@author Zou Ang
 * Contact <a href ="mailto:richardeee@gmail.com">Zou Ang</a>
 
*/

public class MyBookServiceClient {
    
private static final String endPoint = "http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws?wsdl";
    
public static void main(String args[]){
        Service service 
= new Service();
        
try {
            Call call 
= (Call)service.createCall();
            call.setTargetEndpointAddress(
new URL(endPoint));
            call.setOperationName(
new QName("getBookTitle"));
            String result 
= (String)call.invoke(new Object[]{"0130895601"});
            System.out.println(result);
        }
 catch (ServiceException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
 catch (MalformedURLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
catch(RemoteException e){
            e.printStackTrace();
        }

    }

}

控制å°è¾“å‡?
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
Advanced Java 
2 Platform How to Program
æˆåŠŸå•?
在代ç ä¸­åŠ ä¸Š˜q™ä¸€å?
System.out.println(call.getResponseMessage().getSOAPPartAsString());
ä¼?x¨¬)看到控制å°è¾“å‡?
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    
<soapenv:Body>
    
<getBookTitleResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        
<getBookTitleReturn xsi:type="xsd:string">
            Advanced Java 2 Platform How to Program
        
</getBookTitleReturn>
    
</getBookTitleResponse>
    
</soapenv:Body>
</soapenv:Envelope>

改进了一ä¸?使用Swing建立一个图形化界é¢:
/**
 * 2006-11-29
 * 
@author Zou Ang
 * Contact <a href ="mailto:richardeee@gmail.com">Zou Ang</a>
 
*/

public class MyBookClient extends JFrame {

    
private final static int FRAME_WIDTH = 500;
    
private final static int FRAME_HEIGHT = 100;
    
    
public MyBookClient(String title) {
        
super(title);
        getContentPane().setLayout(
new GridLayout(2 , 2));
        
final String endPoint = "http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws?wsdl";
        
final JLabel resultLabel = new JLabel();
        
final JComboBox bookISDNBox = new JComboBox();
        bookISDNBox.addItem(
"0130895601");
        bookISDNBox.addItem(
"0430895717");
        bookISDNBox.addItem(
"0430293636");
        bookISDNBox.addItem(
"0130923613");
        
        
this.setSize(FRAME_WIDTH, FRAME_HEIGHT);
        JButton serviceButton 
= new JButton("Get Book Title");
        serviceButton.addActionListener(
new ActionListener(){

            
public void actionPerformed(ActionEvent e) {
                
// TODO Auto-generated method stub
                try {
                    Service service 
= new Service();
                    Call call 
= (Call)service.createCall();
                    call.setTargetEndpointAddress(
new URL(endPoint));
                    call.setOperationName(
new QName("getBookTitle"));
                    String result 
= (String)call.invoke(bookISDNBox.getSelectedObjects());
                    resultLabel.setText(result);
                }
 catch (AxisFault e1) {
                    
// TODO Auto-generated catch block
                    e1.printStackTrace();
                }
 catch (MalformedURLException e1) {
                    
// TODO Auto-generated catch block
                    e1.printStackTrace();
                }
 catch (RemoteException e1) {
                    
// TODO Auto-generated catch block
                    e1.printStackTrace();
                }
 catch (ServiceException e1) {
                    
// TODO Auto-generated catch block
                    e1.printStackTrace();
                }

            }

        }
);
        
        getContentPane().add(
new JLabel("Please ISDN number"));
        getContentPane().add(bookISDNBox);
        getContentPane().add(resultLabel);
        getContentPane().add(serviceButton);
    }

    
    
public static void main(String args[]){
        MyBookClient client 
= new MyBookClient("Book Title Service");
        client.setDefaultCloseOperation(EXIT_ON_CLOSE);
        client.setVisible(
true);
    }

}


]]>
Web Service学习(f¨¤n)日记-11æœ?8æ—?Web Service部çÖvhttp://www.aygfsteel.com/richardeee/archive/2006/11/28/84138.htmlZou AngZou AngTue, 28 Nov 2006 13:00:00 GMThttp://www.aygfsteel.com/richardeee/archive/2006/11/28/84138.htmlhttp://www.aygfsteel.com/richardeee/comments/84138.htmlhttp://www.aygfsteel.com/richardeee/archive/2006/11/28/84138.html#Feedback1http://www.aygfsteel.com/richardeee/comments/commentRss/84138.htmlhttp://www.aygfsteel.com/richardeee/services/trackbacks/84138.html首先,去Apache的网站下载Axis,我没有下载Axis2,因䨓(f¨´)æ®è¯´Axis2å’ŒAxis有比较多的ä¸å?所以还是觉得先用以å‰çš„å?
下è²å¥½äº†ä»¥åŽ,把axis下的webappæ–‡äšg夹中的axis攑ֈ°tomcatçš„webapp目录ä¸?ç„¶åŽå¯åЍtomcat,输入:http://localhost:8080/axis/,如果æˆåŠŸä¼?x¨¬)看到欢˜qŽé¡µé?
ç„¶åŽå†™ä¸€ä¸ªJava¾c?
import java.util.HashMap;
import java.util.Map;

/**
 * 2006-11-28
 * 
@author Zou Ang
 * Contact <a href ="mailto:richardeee@gmail.com">Zou Ang</a>
 
*/

public class BookTitleService {

    Map
<String,String> books;
    
public BookTitleService(){
        books 
= new HashMap<String,String>();
        
        books.put(
"0130895601","Advanced Java 2 Platform How to Program");
        books.put(
"0430895717","C++ How to Program,Third edition");
        books.put(
"0430293636","Visual Basic. NET How to Program");
        books.put(
"0130923613","Python How to Program");
    }

    
    
public String getBookTitle(String ISBN){
        
return books.get(ISBN);
    }

}
ç„¶åŽæŠŠBookTitleService.javaæ›´å为BookTitleService.jws,把更改åŽçš„æ–‡ä»¶æ”¾åˆ?CATALINA_HOME%/webapps/axis/%包结æž?比如org/apache/..)/目录ä¸?br />,我的是D:\apache-tomcat-5.5.17\apache-tomcat-5.5.17\webapps\axis\org\zsu\zouang\BookTitleService.jws,注æ„,˜q™æ ·æ”‘Ö¥½äº†jwsæ–‡äšgå?把java¾cÖM¸­çš„包åè¦åˆ é™¤,åšå®Œäº†ä»¥åŽé‡æ–°å¯åЍtomcat,åœ¨åœ°å€æ è¾“å…?a href="http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws">http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws,如果WebæœåŠ¡éƒ¨çÖvæˆåŠŸž®×ƒ¼š(x¨¬)æœ‰é¡µé¢æ˜¾½Cºçš„äº?点Click to See WSDLå?å¯ä»¥çœ‹åˆ°:
 <?xml version="1.0" encoding="UTF-8" ?> 
- 
<wsdl:definitions targetNamespace="http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws" xmlns:intf="http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- 
<!-- 
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)

  
--> 
- 
<wsdl:message name="getBookTitleRequest">
  
<wsdl:part name="ISBN" type="xsd:string" /> 
  
</wsdl:message>
- 
<wsdl:message name="getBookTitleResponse">
  
<wsdl:part name="getBookTitleReturn" type="xsd:string" /> 
  
</wsdl:message>
- 
<wsdl:portType name="BookTitleService">
- 
<wsdl:operation name="getBookTitle" parameterOrder="ISBN">
  
<wsdl:input message="impl:getBookTitleRequest" name="getBookTitleRequest" /> 
  
<wsdl:output message="impl:getBookTitleResponse" name="getBookTitleResponse" /> 
  
</wsdl:operation>
  
</wsdl:portType>
- 
<wsdl:binding name="BookTitleServiceSoapBinding" type="impl:BookTitleService">
  
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
- 
<wsdl:operation name="getBookTitle">
  
<wsdlsoap:operation soapAction="" /> 
- 
<wsdl:input name="getBookTitleRequest">
  
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" /> 
  
</wsdl:input>
- 
<wsdl:output name="getBookTitleResponse">
  
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws" use="encoded" /> 
  
</wsdl:output>
  
</wsdl:operation>
  
</wsdl:binding>
- 
<wsdl:service name="BookTitleServiceService">
- 
<wsdl:port binding="impl:BookTitleServiceSoapBinding" name="BookTitleService">
  
<wsdlsoap:address location="http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws" /> 
  
</wsdl:port>
  
</wsdl:service>
  
</wsdl:definitions>
˜q™æ ·,一个最最½Ž€å•çš„Web Servicež®±éƒ¨¾|²æˆåŠŸäº†.

]]>
慎用Eclipse中的自动Formathttp://www.aygfsteel.com/richardeee/archive/2006/11/25/83437.htmlZou AngZou AngSat, 25 Nov 2006 05:52:00 GMThttp://www.aygfsteel.com/richardeee/archive/2006/11/25/83437.htmlhttp://www.aygfsteel.com/richardeee/comments/83437.htmlhttp://www.aygfsteel.com/richardeee/archive/2006/11/25/83437.html#Feedback1http://www.aygfsteel.com/richardeee/comments/commentRss/83437.htmlhttp://www.aygfsteel.com/richardeee/services/trackbacks/83437.html以å‰å¾ˆå–œ‹Æ¢åœ¨Eclipse中ä‹É用CTRL+ALT+Fæ¥è¿›è¡Œè‡ªåŠ¨æŽ’ç‰?ä¸è¿‡ä»Šå¤©å‘现以åŽè¦ç»å¯ÒŽ(gu¨©)…Žç”¨è¿™™å¹åŠŸèƒ?ž®¤å…¶æ˜¯åœ¨xmlå’Œhtmlä¸?ž®½é‡ä¸è¦ä½¿ç”¨..因䨓(f¨´)今天å‘现,本楘q行得很好的é…置文äšg,åªè¦ä¸€è‡ªåŠ¨æŽ’ç‰ˆ,ž®×ƒ¼š(x¨¬)报出一些莫å其妙的错误,而且˜q™ç§é”™è¯¯æ˜¯ä½ ‹‚€(g¨¨)查酾|®æ£€æŸ¥ä¸å‡ºæ¥çš?因䨓(f¨´)é…置看è“væ¥æ ¹æœ¬å°±æ²¡å˜!!
猜测是由于在xmlçš„entity中加了空格或者æ¢è¡Œç¬¦çš„缘æ•?

]]>
[转]如何¾l„å¾ç†æƒ³SOA团队http://www.aygfsteel.com/richardeee/archive/2006/11/25/83416.htmlZou AngZou AngSat, 25 Nov 2006 01:09:00 GMThttp://www.aygfsteel.com/richardeee/archive/2006/11/25/83416.htmlhttp://www.aygfsteel.com/richardeee/comments/83416.htmlhttp://www.aygfsteel.com/richardeee/archive/2006/11/25/83416.html#Feedback0http://www.aygfsteel.com/richardeee/comments/commentRss/83416.htmlhttp://www.aygfsteel.com/richardeee/services/trackbacks/83416.html
  软äšgå¼€å‘领域的主è¦å‘展­‘‹åŠ¿æ˜¯ä»Žä¼ ç»Ÿè½¯äšg体系¾l“æž„˜q‡æ¸¡åˆ°é¢å‘æœåŠ¡çš„ä½“ç³»¾l“æž„ (SOA)。在传统软äšg体系¾l“构中,ž®†é¡¹ç›®è§†ä¸ºå•个新应用½E‹åºçš„交付。在SOA中,ž®†é¡¹ç›®è§†ä¸ºé›†æˆæœåŠ¡çš„äº¤ä»˜â€”â€”ä¸€äº›æ˜¯æ–°å¾çš„,一些是现有的。无论其规模和预½Ž—å¦‚ä½•ï¼Œå‡ ä¹Žæ‰€æœ‰ä¿¡æ¯æŠ€æœ?Information TechnologyåQŒIT)部门当å‰éƒ½åœ¨˜q›è¡Œ˜q‡æ¸¡åˆ°SOA的工作。æ?zh¨¨n)¨å¯èƒ½å·²ç»è¯»è¿‡å¤šç¯‡å…³äºŽSOAé‡‡ç”¨ã€æˆç†Ÿåº¦æ¨¡åž‹å’Œå®žçŽ°çš„æ–‡ç« äº†ã€‚æœ¬æ–‡å°†æè¿°åœ¨ç»„¾l‡é‡‡ç”¨SOA或过渡到更高的SOAæˆç†Ÿåº¦æ°´òq³çš„˜q‡ç¨‹ä¸­ï¼Œæ‚(zh¨¨n)¨çš„IT团队æˆå‘˜ä¸­æ‰€éœ€çš„一¾l„新角色å?qi¨¢ng)å…¶å„自的èŒè´£ã€?

  在åÅžæˆSOA团队æ—Óž¼Œæœ€å¤§çš„范å¼è½¬æ¢æ˜¯ä»Ž¾l„åˆåº”用½E‹åºäº¤ä»˜˜q‡æ¸¡åˆ°æœåŠ¡äº¤ä»˜ã€‚ä¼ ¾lŸèÊYä»¶å¼€å‘äh员通常构å¾åº”用½E‹åºä¸­çš„一个模å—,或典型的三层体系¾l“构中的å•个层的一部分。开å‘äh员的一个例å­å°±æ˜¯åœ¨æ¨¡åž‹-视图-控制å™?Model-View-ControlleråQŒMVC)体系¾l“构中负责控制器或模型层的äh员。在SOA环境中,˜q™äº›å¼€å‘äh员现在负责æœåŠ¡å®žçŽ°ã€‚ä»–ä»¬åÆˆä¸éœ€è¦çŸ¥é“何时ã€å¦‚何或ä¸ÞZ»€ä¹ˆè°ƒç”¨æœåС以å?qi¨¢ng)è°è°ƒç”¨æœåŠ¡ã€‚ä»–ä»¬æ‰€å…›_¿ƒçš„就是,æœåŠ¡˜q›è¡Œä»€ä¹?nbsp; é˜…读全文

]]>
½W¬ä¸€½‹?DWRhttp://www.aygfsteel.com/richardeee/archive/2006/11/23/83115.htmlZou AngZou AngThu, 23 Nov 2006 12:44:00 GMThttp://www.aygfsteel.com/richardeee/archive/2006/11/23/83115.htmlhttp://www.aygfsteel.com/richardeee/comments/83115.htmlhttp://www.aygfsteel.com/richardeee/archive/2006/11/23/83115.html#Feedback0http://www.aygfsteel.com/richardeee/comments/commentRss/83115.htmlhttp://www.aygfsteel.com/richardeee/services/trackbacks/83115.html class SomeClass {
public getHelloWorld() {
return " Hello World! " ;
}
}
那么在DWR的酾|®æ–‡ä»¶dwr.xml中酾|?nbsp; é˜…读全文

]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ·ÖÒËÏØ| ¬ÍåÇø| ¸»´¨| ¶«Ý¸ÊÐ| Ðãɽ| áéÖÝÊÐ| ÁÙº£ÊÐ| ¶«¸ÛÊÐ| ÎߺþÏØ| ÉçÆìÏØ| ÌÁ¹ÁÇø| »³ÈáÇø| Ë«ÇÅÇø| ±±º£ÊÐ| êùÎªÏØ| ÑïÖÝÊÐ| Ä«½­| °ÍÖÐÊÐ| ÐËÂ¡ÏØ| ãòÖÝÊÐ| Ñ­»¯| ƽ°²ÏØ| ɽÎ÷Ê¡| ½òÊÐÊÐ| Îİ²ÏØ| аͶû»¢×óÆì| ¿ËÉ½ÏØ| ¸£½¨Ê¡| »ÆÃ·ÏØ| ƽÀÖÏØ| ͨ³ÇÏØ| Æ«¹ØÏØ| ×ÏÔÆ| °¢ÍßÌáÏØ| ÎÚ³ľÆëÏØ| ÂúÖÞÀïÊÐ| ºù«µºÊÐ| Û·ÉÆÏØ| ¾ÅÕ¯¹µÏØ| ´óÎòÏØ| ¼ª°²ÊÐ|