﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-BeanSoft's Java Blog-随笔分类-MyEclipse</title><link>http://www.blogjava.net/beansoft/category/26073.html</link><description>MyEclipse 6, Java EE 5, JSPWiki, Spring, Struts, Hibernate, JPA, SWT, Swing, AJAX, JavaScript, Netbeans</description><language>zh-cn</language><lastBuildDate>Sun, 13 Apr 2008 04:30:32 GMT</lastBuildDate><pubDate>Sun, 13 Apr 2008 04:30:32 GMT</pubDate><ttl>60</ttl><item><title>第十五章 开发XFire Web Service应用完工,请订购用户查收</title><link>http://www.blogjava.net/beansoft/archive/2008/04/04/190811.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Fri, 04 Apr 2008 10:30:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/04/04/190811.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/190811.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/04/04/190811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/190811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/190811.html</trackback:ping><description><![CDATA[<p>第十五章 开发XFire Web Service应用&nbsp;&nbsp;&nbsp; 1<br>15.1 介绍&nbsp;&nbsp;&nbsp; 1<br>15.1.1 Web Service 简介&nbsp;&nbsp;&nbsp; 1<br>15.1.2 XFire Java SOAP 框架一览&nbsp;&nbsp;&nbsp; 4<br>15.1.3 MyEclipse 的Web Service 工具简介&nbsp;&nbsp;&nbsp; 5<br>15.2 基于代码方式创建Web Service项目&nbsp;&nbsp;&nbsp; 6<br>15.2.1 系统需求&nbsp;&nbsp;&nbsp; 6<br>15.2.2 创建 HelloWorldService 项目&nbsp;&nbsp;&nbsp; 6<br>15.2.3 创建Web Service&nbsp;&nbsp;&nbsp; 9<br>15.2.4 发布运行项目, 显示 WSDL&nbsp;&nbsp;&nbsp; 11<br>15.2.5 用 Web Service Explorer 测试&nbsp;&nbsp;&nbsp; 13<br>15.2.6 创建Java测试客户端&nbsp;&nbsp;&nbsp; 15<br>15.2.7给现有Web项目加入Web Service开发功能&nbsp;&nbsp;&nbsp; 17<br>15.3 创建单独的客户端项目&nbsp;&nbsp;&nbsp; 17<br>15.3.1 创建天气预报客户端WeatherWSClient项目&nbsp;&nbsp;&nbsp; 18<br>15.3.2 创建Web Service Client,从 WSDL生成客户端代码&nbsp;&nbsp;&nbsp; 18<br>15.3.3 编写运行测试代码&nbsp;&nbsp;&nbsp; 20<br>15.4 JSR 181 标注方式 Web 服务开发&nbsp;&nbsp;&nbsp; 25<br>15.4.1 XFire的标注服务开发&nbsp;&nbsp;&nbsp; 25<br>15.4.2 JBoss下的标注服务开发&nbsp;&nbsp;&nbsp; 27<br>15.5 可视化创建、修改WSDL&nbsp;&nbsp;&nbsp; 30<br>15.6常见问题&nbsp;&nbsp;&nbsp; 33<br>15.10 小结&nbsp;&nbsp;&nbsp; 34<br>15.11 参考资料&nbsp;&nbsp;&nbsp; 34 <p>内容摘读： <p>&nbsp; <h2><a name="_Toc195005868"><span lang="EN-US">15.4 JSR 181 </span></a><span style="mso-bookmark: _toc195005868"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">标注方式</span><span lang="EN-US"> Web </span></span><span style="mso-bookmark: _toc195005868"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务开发</span></span></h2> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XFire</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">支持</span><span lang="EN-US">JSR 181</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">标注方式的</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务开发，另外，所有支持</span><span lang="EN-US">Java EE 5</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">的应用服务器（</span><span lang="EN-US">Tomcat</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">只是</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">层的，本身不支持</span><span lang="EN-US">EJB</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">和</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务开发），都支持这种开发方式，例如：</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">，</span><span lang="EN-US">GlassFish</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">，</span><span lang="EN-US">WebLogic10</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">等等，本节就简要讨论使用</span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">开发标注式</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务和用</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">开发的过程。</span></p> <h3><a name="_Toc195005869"><span lang="EN-US">15.4.1 XFire</span></a><span style="mso-bookmark: _toc195005869"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">的标注服务开发</span></span></h3> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XFire</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">支持</span><span lang="EN-US">JRS181</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">方式的标注服务开发，这样开发的时候只需要编写一个普通的</span><span lang="EN-US">Java</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">类，然后加上标注信息后，加入</span><span lang="EN-US">services.xml</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">中即可。我们仍然在第</span><span lang="EN-US">2</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">节所开发的</span><i style="mso-bidi-font-style: normal"><span lang="EN-US">HelloWorldService</span></i><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">项目中进行修改。下面是创建的</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务类</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">echo.Jsr181EchoService</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">：</span></p> <table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0pt 5.4pt 0pt 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"> <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0pt; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" valign="top" width="568"> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">package</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> echo;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><?xml:namespace prefix = o /><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">import</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> javax.jws.WebMethod;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">import</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> javax.jws.WebParam;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">import</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> javax.jws.WebResult;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">import</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> javax.jws.WebService;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: #646464; font-family: 'Courier New'; mso-font-kerning: 0pt">@WebService</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">(name = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"EchoService"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">, serviceName=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"EchoServiceTest"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">, targetNamespace = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"http://www.openuri.org/2004/04/HelloWorld"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">)</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">public</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> </span><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">class</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> Jsr181EchoService</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">{</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-size: 10pt; color: #646464; font-family: 'Courier New'; mso-font-kerning: 0pt">@WebMethod</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">(operationName = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"echoString"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">, action = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"urn:EchoString"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">)</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-size: 10pt; color: #646464; font-family: 'Courier New'; mso-font-kerning: 0pt">@WebResult</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">(name = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"echoResult"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">)</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">public</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> </span><u><span lang="EN-US" style="font-size: 10pt; color: blue; font-family: 'Courier New'; mso-font-kerning: 0pt">String</span></u><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> echo(</span><span lang="EN-US" style="font-size: 10pt; color: #646464; font-family: 'Courier New'; mso-font-kerning: 0pt">@WebParam</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">(name = </span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'; mso-font-kerning: 0pt">"echoParam"</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">, header = </span><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">true</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">) String input)</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>{</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;</span></span><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">return</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> input;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">}</span></p></td></tr></tbody></table> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">这个代码中有很多标注，绝大部分都可以在最后生成的</span><span lang="EN-US">WSDL</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">文档中找到对应值。</span></p> <p class="MsoNormal" style="text-indent: 21pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">@WebService</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">这个标注放置在</span><span lang="EN-US"> Java </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">类之前，注明这个类的部分方法可以被发布为</span><span lang="EN-US"> Web </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务（还记得上一章提到的标注嘛？这个标注最终被</span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">读取后进行分析后会进一步处理成</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务）。它的属性用于设置</span><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span>Web </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务被发布时的配置信息，常用的属性包括：</span><span lang="EN-US"> </span></p> <p class="MsoNormal"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">name</span></b><b style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">（可选）</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">：</span><span lang="EN-US">Web </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务的名字，</span><span lang="EN-US">WSDL</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">中</span><span lang="EN-US"> wsdl:portType</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">元素的</span><span lang="EN-US"> name</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">属性和它保持一致，默认是</span> <span lang="EN-US">Java</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">类或者接口的名字，也可以进行自定义，例如本例中的</span><i style="mso-bidi-font-style: normal"><span lang="EN-US">EchoService</span></i><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">。</span><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span></span></p> <p class="MsoNormal"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">serviceName</span></b><b style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">（可选）</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">：</span><span lang="EN-US">Web </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务的服务名，</span><span lang="EN-US">WSDL </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">中</span><span lang="EN-US"> wsdl:service</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">元素的</span><span lang="EN-US"> name</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">属性和它保持一致，默认是</span><span lang="EN-US">Java</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">类的名字（</span><i style="mso-bidi-font-style: normal"><span lang="EN-US">Jsr181EchoService</span></i><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">），不过如果设置了</span><span lang="EN-US">name</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">属性，则名字改为</span><span lang="EN-US">name</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">属性的取值。</span></p> <p class="MsoNormal"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">targetNamespace</span></b><b style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">（可选）</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">：</span> <span lang="EN-US">WSDL</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">文件所使用的</span><span lang="EN-US"> namespace</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">，该</span><span lang="EN-US"> Web </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务中所产生的其他</span><span lang="EN-US"> XML</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">文档同样采用这个作为</span><span lang="EN-US">namespace</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">，一般取值为</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务所在网站的名字，不过看起来任意取值并无出错之处。</span><span lang="EN-US"> </span></p> <p class="MsoNormal" style="text-indent: 21pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">@WebMethod</span></b><b style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">（可选）</span></b> <span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">标注放在需要发布成</span><span lang="EN-US"> Web </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务的方法之前，有一些属性可以设置。例如</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">openrationName</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">指明了</span><span lang="EN-US">SOAP</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">调用时所看到的方法名为</span><span lang="EN-US">echoString</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">，而不是类中的方法名</span><span lang="EN-US">echo</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">，</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">action</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">则定义了操作的类型。一个类里面可以定义多个</span><span lang="EN-US">@WebMethod</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">。</span></p> <p class="MsoNormal" style="text-indent: 21pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">@WebResult</span></b><b style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">（可选）</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">标注定义了返回值（</span><span lang="EN-US">SOAP Response Envolope</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">）中的</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">name</span></b><span lang="EN-US">(</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">名字</span><span lang="EN-US">)</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">为</span><span lang="EN-US">echoResult</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">。</span></p> <p class="MsoNormal" style="text-indent: 21pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">@WebParam</span></b><b style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">（可选）</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">则定义了哪些参数可以作为</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务中的远程可见的参数被调用，</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">name</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">设置了其属性。</span></p> <p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">乍看之下，这个</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务中所用的标注有点多，实际上，这些标注可以不加任何属性，例如只写下</span><span lang="EN-US">@WebService</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">，</span><span lang="EN-US">@WebMethod</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">即可，甚至于整个类只需要一个</span><span lang="EN-US">@WebService</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">标注即可，此时代码如下所示：</span></p> <table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0pt 5.4pt 0pt 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"> <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0pt; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" valign="top" width="568"> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">package</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> echo;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">import</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> javax.jws.WebService;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: #646464; font-family: 'Courier New'; mso-font-kerning: 0pt">@WebService</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">public</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> </span><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">class</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> Jsr181EchoService {</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </span></span><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">public</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> String echo(</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </span>String input) {</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><b><span lang="EN-US" style="font-size: 10pt; color: #7f0055; font-family: 'Courier New'; mso-font-kerning: 0pt">return</span></b><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"> input;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">}</span></p></td></tr></tbody></table> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">。此时最后所生成的</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务中，所有的操作名，方法名和参数名都和此通</span><span lang="EN-US">Java</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">类中的名称一致。在这种情况下，该</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务的访问地址应为：</span></p> <p class="MsoNormal"><span lang="EN-US"><a href="http://localhost:8080/HelloWorldService/services/Jsr181EchoService?wsdl">http://localhost:8080/HelloWorldService/services/Jsr181EchoService?wsdl</a> </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">。</span></p> <p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">最后一步，乃是在</span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">中配置并发布此服务了，在</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">services.xml</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">中加入的</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务配置格式如下：</span></p> <table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0pt 5.4pt 0pt 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"> <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0pt; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" valign="top" width="568"> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&lt;</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'; mso-font-kerning: 0pt">service</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt">&lt;!-- </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">如果配置文件中配置了额外的</span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt">name</span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">属性，那么最终的</span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt">Web Service </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">名字将会以此处为准，即：</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ServiceName?wsdl</span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">；同样的</span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt">namespace</span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">的取值也会覆盖</span><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt">Java</span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'">类中的标注的值。</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;name&gt;ServiceName&lt;/name&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;namespace&gt;http://www.un.gov/HelloEcho&lt;/namespace&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>--&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&lt;</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'; mso-font-kerning: 0pt">serviceClass</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&gt;</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt">echo.Jsr181EchoService</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&lt;/</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'; mso-font-kerning: 0pt">serviceClass</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&lt;</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'; mso-font-kerning: 0pt">serviceFactory</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>org.codehaus.xfire.annotations.AnnotationServiceFactory</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&lt;/</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'; mso-font-kerning: 0pt">serviceFactory</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'; mso-font-kerning: 0pt"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </span></span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&lt;/</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'; mso-font-kerning: 0pt">service</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'; mso-font-kerning: 0pt">&gt;</span></p></td></tr></tbody></table> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">，此配置相当的简单，需要注意的是</span><span lang="EN-US">serviceClass</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">就是我们写有</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务标注的</span><span lang="EN-US">Java</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">类，而</span><span lang="EN-US">serviceFactory</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">则必须是</span><span lang="EN-US">AnnotationServiceFactory</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">（标注服务工厂），否则此</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">服务将无法正常发布。</span></p> <p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">好了，现在按照</span><span lang="EN-US">15.2.4</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">一节的内容发布项目并运行后，即可在浏览器中键入下面地址进行测试了：</span></p> <p class="MsoNormal"><span lang="EN-US"><a href="http://localhost:8080/HelloWorldService/services/EchoServiceTest?wsdl">http://localhost:8080/HelloWorldService/services/EchoServiceTest?wsdl</a> </span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">。</span></p> <p class="MsoNormal"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">EchoServiceTest</span></b><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">的名字是因为在类中标注了</span><span lang="EN-US">@WebService</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">的</span><span lang="EN-US">serviceName</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">属性。之后就可以在</span><span lang="EN-US">Web Service Explorer</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">中对它进行测试，或者是生成客户端代码。</span></p> <p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">从这里看到这种开发方式相对也简单的多，而且您将在下一节看到如果是</span><span lang="EN-US">Java EE 5</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">的容器，开发过程将更加的简单，而且不需要</span><span lang="EN-US">XFire</span><span style="font-family: 宋体; mso-ascii-font-family: arial; mso-hansi-font-family: arial">类库及其配置文件。</span></p><img src ="http://www.blogjava.net/beansoft/aggbug/190811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-04-04 18:30 <a href="http://www.blogjava.net/beansoft/archive/2008/04/04/190811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse 6 Java 开发中文教程 DVD光盘目录</title><link>http://www.blogjava.net/beansoft/archive/2008/03/18/187098.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Tue, 18 Mar 2008 13:48:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/03/18/187098.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/187098.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/03/18/187098.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/187098.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/187098.html</trackback:ping><description><![CDATA[
		<p>今天抽空整理了一下光盘内容，当然目前还没有完工，所以还不能刻录。</p>
		<p>现在的内容有2.86G，欢迎订购用户讨论需求，并往上面刻入更多使用内容，例如难以下载的大软件等等（不要破解的软件）。已经加入Weblogic 8 和 Weblogic 10 以及 Linux版本的工具。</p>
		<p>
				<a href="/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaDVD_13210/DVD_2.png">
						<img height="1066" alt="DVD" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaDVD_13210/DVD_thumb.png" width="573" border="0" />
				</a>
		</p>
		<p>下面是参考资料的内容目录：</p>
		<p>
				<a href="/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaDVD_13210/image_4.png">
						<img height="298" alt="image" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaDVD_13210/image_thumb_1.png" width="411" border="0" />
				</a>
		</p>
		<p>视频的：</p>
		<p>
				<img height="352" alt="image" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaDVD_13210/image_6.png" width="466" border="0" />
		</p>
<img src ="http://www.blogjava.net/beansoft/aggbug/187098.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-03-18 21:48 <a href="http://www.blogjava.net/beansoft/archive/2008/03/18/187098.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse 6 Java 开发中文教程第11章和12章完整文档和代码完成</title><link>http://www.blogjava.net/beansoft/archive/2008/03/04/183812.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Tue, 04 Mar 2008 15:17:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/03/04/183812.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/183812.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/03/04/183812.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/183812.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/183812.html</trackback:ping><description><![CDATA[
		<p>现在的人真的都好现实。。。慢慢的，女人们说话做事都现实多了。有时候现实的让我很无奈。我真没想到，以前单纯的妹妹会变成这样。你（+们）让我真的好伤心，真的。。。有人说我太实在了，只能做朋友或者哥哥，我很无奈。 </p>
		<p>
				<br />有时候我只是自己骗自己，结果却发现骗不了自己。过年回家到现在我的心情都没平静下来，好多事情让人很无奈。我不知道明天该做些什么。天哪，存在的意义是什么？如果最真的梦也破灭了，人会不会自杀？</p>
		<p>
				<br />看着发黄的墙，只能依稀记起以前的事情，很久远的，再过50年就会消失的无影无踪的。呵呵，好可笑，自己不是神仙啊，难免发愁时候。</p>
		<p>
				<br />呵呵，今天是有点劳累过度了，早上起来狂感冒。中午开始就一直在忙，高兴的通知各位订购用户：第11章PDF加入一小节内，代码略作更新，而第12章则在今天终于完成了，已经已经一并发送到大家的邮箱，请及时查收。</p>
		<p>
				<br />坚持到最后！Yeah!</p>
		<p>
				<br />第12章一共74页，这是其目录：<br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432281">第十二章 开发Struts 2 + Spring应用... 1</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432282">12.1 介绍... 2</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432283">12.2 下载Struts 2开发包... 6</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432284">12.3 开发第一个Struts 2应用... 8</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432285">12.3.1 准备工作... 8</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432286">12.3.2 开发HelloWorld. 10</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432287">12.3.3 使用国际化消息... 16</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432288">12.3.4 基于POJO的Action开发... 19</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432289">12.3.5 自定义Action方法和映射通配符... 20</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432290">12.3.6 表单处理――登录例子... 26</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432291">12.3.7 表单验证... 31</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432292">12.3.8 给Action注入参数（param）值... 38</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432293">12.3.9 配置属性和struts.properties文件... 39</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432294">12.4 Struts 2整合Spring. 39</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432295">12.5 实现文件上传下载... 45</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432296">12.5.1 文件下载... 45</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432297">12.5.1.1 单个文件下载... 46</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432298">12.5.1.2 下载中文文件... 48</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432299">12.5.1.3 下载已存在的文件... 51</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432300">12.5.2 文件上传... 54</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432301">12.5.2.1 介绍和准备工作... 54</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432302">12.5.2.2 单个文件上传例子... 55</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432303">12.5.2.3 文件上传参数配置... 63</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432304">12.5.2.4 上传多个文件... 65</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432305">12.6 访问session，request等JSP对象... 69</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432306">12.7 小结... 73</a><br /><a href="http://imgcache.qq.com/qzone/blog/QZEditor/blank.htm#_Toc192432307">12.8 参考资料... 73</a></p>
		<p> </p>
		<p>
				<a href="/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6Java1112_14718/image_2.png">
						<img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="486" alt="image" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6Java1112_14718/image_thumb.png" width="295" border="0" />
				</a>
		</p>
		<p> </p>
<img src ="http://www.blogjava.net/beansoft/aggbug/183812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-03-04 23:17 <a href="http://www.blogjava.net/beansoft/archive/2008/03/04/183812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse 6 实战开发讲解视频入门 14 Struts 2 + Spring 入门开发</title><link>http://www.blogjava.net/beansoft/archive/2008/02/20/180956.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Wed, 20 Feb 2008 15:01:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/02/20/180956.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/180956.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/02/20/180956.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/180956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/180956.html</trackback:ping><description><![CDATA[<p></p> <p>新年回来了,在家看了看 Struts 2 + Spring 的开发,电子书里面也加入了这一章的内容. 做个视频复习巩固一下.</p> <p>没有介绍<a name="OLE_LINK2"></a><a name="OLE_LINK1">Struts2+Spring+Hibernate</a>整合开发是因为：Spring整合了Web层框架之后，剩下的就是Spring整合Hibernate还是JPA等其它框架，其过程是和Web层框架没有任何关系的。希望读者已经通过广泛的阅读了解这个概念，明白下面这个等式： <p>Struts2 + Spring + Hibernate/JPA/其它框架 ＝ （Struts 2 + Spring）+（Spring + Hibernate/JPA/其它框架)。因此在本视频的基础上，再结合以前弟兄们看到的Spring 整合资料，您可以自然而然的完成整合Hibernate或者其它框架的过程。 <p>由于MyEclipse不支持 Struts 2,因此好多文件都是手工配置编写,还得自己下载类库(或者先下载<a href="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/13_struts2hello.zip">http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/13_struts2hello.zip</a>,里面带了lib),带的源码包是不包括完整类库的.</p> <p><font color="#ff0000"><strong>友情提示</strong><strong>: </strong><strong>下载微软网盘文件时关闭下载工具</strong><strong>,&nbsp; </strong><strong>否则你将得到错误的文件</strong><strong>, </strong><strong>双击</strong><strong> EXE </strong><strong>会出来</strong><strong> DOS </strong><strong>窗口</strong><strong>. </strong><strong>正确操作是点击文件名后能看到显示下载链接和文件大小等信息</strong><strong>.</strong></font>  <p>代码: <a href="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/14_struts2spring.zip">http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/14_struts2spring.zip</a>&nbsp; 20KB <p>视频:&nbsp; <a title="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_13.exe" href="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_14.exe">http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_14.exe</a>&nbsp; 21分 6 MB </p> <p>先贴几个配置文件的让大家感受一下,为了各位观众能看清楚,关键点已经加入了下划线.</p> <p><strong>web.xml</strong> 的源代码清单</p> <div><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;?</span><span style="color: #800000">xml</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">="1.0"</span> <span style="color: #ff0000">encoding</span><span style="color: #0000ff">="UTF-8"</span>?<span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">web-app</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">="2.5"</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/javaee"</span>
    <span style="color: #ff0000">xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span>
    <span style="color: #ff0000">xsi:schemaLocation</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</span><span style="color: #0000ff">&gt;</span>
    <span style="color: #008000">&lt;!-- 用来定位Spring XML文件的上下文配置 --&gt;</span>
<u><span style="color: #0000ff">&lt;</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span>
    <span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span>contextConfigLocation<span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span>
    <span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span>/WEB-INF/applicationContext*.xml,classpath*:applicationContext*.xml<span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span></u>
    
    <span style="color: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span>struts2<span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span>
            org.apache.struts2.dispatcher.FilterDispatcher
        <span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span>
    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span>

    <span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span>struts2<span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span>/*<span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span>
    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span>

    <span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span>index.jsp<span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span>
    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span>

<u>    <span style="color: #0000ff">&lt;</span><span style="color: #800000">listener</span><span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;</span><span style="color: #800000">listener-class</span><span style="color: #0000ff">&gt;</span>
            org.springframework.web.context.ContextLoaderListener
        <span style="color: #0000ff">&lt;/</span><span style="color: #800000">listener-class</span><span style="color: #0000ff">&gt;</span>
    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">listener</span><span style="color: #0000ff">&gt;</span></u>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">web-app</span><span style="color: #0000ff">&gt;</span></pre></div>
<p><strong>struts.xml</strong></p>
<div><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;?</span><span style="color: #800000">xml</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">="1.0"</span> <span style="color: #ff0000">encoding</span><span style="color: #0000ff">="UTF-8"</span> ?<span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;!</span><span style="color: #800000">DOCTYPE</span> <span style="color: #ff0000">struts</span> <span style="color: #ff0000">PUBLIC</span>
    <span style="color: #0000ff">"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"</span>
    <span style="color: #0000ff">"http://struts.apache.org/dtds/struts-2.0.dtd"</span><span style="color: #0000ff">&gt;</span>

<span style="color: #0000ff">&lt;</span><span style="color: #800000">struts</span><span style="color: #0000ff">&gt;</span>
<u>    <span style="color: #0000ff">&lt;</span><span style="color: #800000">constant</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="struts.objectFactory.spring.autoWire"</span> 
    <span style="color: #ff0000">value</span><span style="color: #0000ff">="type"</span> <span style="color: #0000ff">/&gt;</span>
    <span style="color: #0000ff">&lt;</span><span style="color: #800000">constant</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="struts.objectFactory"</span> <span style="color: #ff0000">value</span><span style="color: #0000ff">="spring"</span> <span style="color: #0000ff">/&gt;</span></u>

    <span style="color: #0000ff">&lt;</span><span style="color: #800000">package</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="default"</span> <span style="color: #ff0000">extends</span><span style="color: #0000ff">="struts-default"</span><span style="color: #0000ff">&gt;</span>

        <span style="color: #0000ff">&lt;</span><span style="color: #800000">action</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="HelloPOJO"</span> <u><span style="color: #ff0000">class</span><span style="color: #0000ff">="helloPOJO"</span></u> <span style="color: #0000ff">&gt;</span>
            <span style="color: #0000ff">&lt;</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span>/HelloPOJO.jsp<span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;/</span><span style="color: #800000">action</span><span style="color: #0000ff">&gt;</span>

    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">package</span><span style="color: #0000ff">&gt;</span>

<span style="color: #0000ff">&lt;/</span><span style="color: #800000">struts</span><span style="color: #0000ff">&gt;</span></pre></div>
<p><strong>applicationContext.xml</strong></p>
<div><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;?</span><span style="color: #800000">xml</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">="1.0"</span> <span style="color: #ff0000">encoding</span><span style="color: #0000ff">="UTF-8"</span>?<span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">beans</span> <u><span style="color: #ff0000">default-autowire</span><span style="color: #0000ff">="byType"</span></u>
    <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://www.springframework.org/schema/beans"</span>
    <span style="color: #ff0000">xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span>
    <span style="color: #ff0000">xsi:schemaLocation</span><span style="color: #0000ff">="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"</span><span style="color: #0000ff">&gt;</span>
    
    <span style="color: #0000ff">&lt;</span><span style="color: #800000">bean</span> <u><span style="color: #ff0000">id</span><span style="color: #0000ff">="helloPOJO"</span></u> <span style="color: #ff0000">class</span><span style="color: #0000ff">="example.HelloPOJO"</span> <span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;</span><span style="color: #800000">property</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="message"</span><span style="color: #0000ff">&gt;</span>
            <span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span>Spring Struts 2 注入<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span>
        <span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span>
    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span>

<span style="color: #0000ff">&lt;/</span><span style="color: #800000">beans</span><span style="color: #0000ff">&gt;</span></pre></div>
<p>视频截图:</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse614Struts2Spring_140AB/struts2%20spring_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="738" alt="struts2 spring" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse614Struts2Spring_140AB/struts2%20spring_thumb.png" width="1024" border="0"></a></p><img src ="http://www.blogjava.net/beansoft/aggbug/180956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-02-20 23:01 <a href="http://www.blogjava.net/beansoft/archive/2008/02/20/180956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>回来了：更新到第12章 Struts 2，欢迎定购用户查收</title><link>http://www.blogjava.net/beansoft/archive/2008/02/18/180523.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Mon, 18 Feb 2008 12:01:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/02/18/180523.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/180523.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/02/18/180523.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/180523.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/180523.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Struts 2 样章&nbsp;&nbsp;<a href='http://www.blogjava.net/beansoft/archive/2008/02/18/180523.html'>阅读全文</a><img src ="http://www.blogjava.net/beansoft/aggbug/180523.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-02-18 20:01 <a href="http://www.blogjava.net/beansoft/archive/2008/02/18/180523.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse 6 实战开发讲解视频入门 13 Struts 2 入门开发</title><link>http://www.blogjava.net/beansoft/archive/2008/02/02/179042.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Sat, 02 Feb 2008 07:55:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/02/02/179042.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/179042.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/02/02/179042.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/179042.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/179042.html</trackback:ping><description><![CDATA[<p></p> <p>最近忙着过年,身体也不太舒服，所以视频的事情很久没弄了。很早就有人想看看Struts 2 的视频, 今天我就做了个入门的Struts 2 视频，因为嗓子不舒服，所以声音比较沉闷，大家其实可以直接下载例子代码就行了，下载后可以直接运行，不需要额外下载其它框架。</p> <p>视频内容包括三个例子的实际开发：</p> <p><a href="http://beansoft-aty280:8080/HelloWorld.action">HelloWorld</a> －－继承自ActionSupport的Action<br><a href="http://beansoft-aty280:8080/HelloPOJO.action">HelloPOJO</a>－－ POJO 模式的 Action 开发<br><a href="http://beansoft-aty280:8080/Login.jsp">登录</a>－－简单登录，表单验证和form标签 <p>并包含了如何下载，配置Struts 2 开发环境，通过视频你可以了解到用 Struts 2 进行开发其实是非常容易上手的，总的来说它是和JSF类似的开发模式，而Spring Web MVC 则只能和Struts 1 处于一样的开发模式上!</p> <p><font color="#ff0000"><strong>友情提示</strong><strong>: </strong><strong>下载微软网盘文件时关闭下载工具</strong><strong>,&nbsp; </strong><strong>否则你将得到错误的文件</strong><strong>, </strong><strong>双击</strong><strong> EXE </strong><strong>会出来</strong><strong> DOS </strong><strong>窗口</strong><strong>. </strong><strong>正确操作是点击文件名后能看到显示下载链接和文件大小等信息</strong><strong>.</strong></font>  <p>代码: <a href="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/13_struts2hello.zip">http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/13_struts2hello.zip</a> 3.25 MB <p>视频:&nbsp; <a title="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_13.exe" href="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_13.exe">http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_13.exe</a>&nbsp; 49分14秒 15.2 MB </p> <p>视频截图:</p> <p><a href="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/f4a8ed1cf85c_DC2C/MyEclipse6_13_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="462" alt="MyEclipse6_13" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/f4a8ed1cf85c_DC2C/MyEclipse6_13_thumb.png" width="640" border="0"></a></p><img src ="http://www.blogjava.net/beansoft/aggbug/179042.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-02-02 15:55 <a href="http://www.blogjava.net/beansoft/archive/2008/02/02/179042.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse 6 实战开发讲解视频入门 12 Hibernate 一对多</title><link>http://www.blogjava.net/beansoft/archive/2008/01/15/175551.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Tue, 15 Jan 2008 13:30:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/01/15/175551.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/175551.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/01/15/175551.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/175551.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/175551.html</trackback:ping><description><![CDATA[<p></p> <p><font color="#ff0000"><strong>友情提示</strong><strong>: </strong><strong>下载微软网盘文件时关闭下载工具</strong><strong>,&nbsp; </strong><strong>否则你将得到错误的文件</strong><strong>, </strong><strong>双击</strong><strong> EXE </strong><strong>会出来</strong><strong> DOS </strong><strong>窗口</strong><strong>. </strong><strong>正确操作是点击文件名后能看到显示下载链接和文件大小等信息</strong><strong>.</strong></font> </p> <p>&nbsp;</p> <p>最近嗓子不是很舒服, 还有点别的事情忙，所以视频的事情暂时搁置了,今天演示一个非常简单的生成Hibernate一对多代码的例子.</p> <p>我们介绍了如何建表，生成一对多代码并编写测试类，通过视频你可以了解到通过用 MyEclipse 进行一对多开发是非常简单的!</p> <p>注意因为 MySQL 5 不支持检索外键信息，因此没用它来生成，而是用了 Derby 数据库。不过，生成之后讲代码稍作调整后也可以运行于MySQL之下。</p> <p>下载地址：</p> <p>代码: <a title="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/12_HibernateOne2Many.zip" href="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/12_HibernateOne2Many.zip">http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/12_HibernateOne2Many.zip</a> 447 KB  <p>视频:&nbsp; <a title="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_12.exe" href="http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_12.exe">http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_12.exe</a> 8分15秒 3.2 MB </p> <p>&nbsp;</p> <p>&nbsp;</p> <p>相关要点：</p> <p> 建表语句：<br> 家庭表<br> create table Family (<br>&nbsp; id int primary key,<br>&nbsp; familyName VARCHAR(20) not null<br>);  <p>成员表（有外键指向家庭）<br>&nbsp;&nbsp;&nbsp; create table Member(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id int primary key,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username varchar(200) NOT NULL, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password varchar(20) NOT NULL, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; age int,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; familyId int references Family(id)<br>&nbsp;&nbsp;&nbsp; );<br>&nbsp;&nbsp;&nbsp; &lt;!--&nbsp; 如果想保存 一 的时候自动保存 多,&nbsp; 必须加 cascade 属性， 递归保存 --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set name="members" inverse="true" cascade="all"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="FAMILYID" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/key&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;one-to-many class="dao.Member" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/set&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 修改主键生成器为 increment:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="id" type="java.lang.Integer"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="ID" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;generator class="increment" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试类的代码：<br> package test;  <p>import org.hibernate.Transaction;  <p>import dao.*;  <p>public class DAOTest {  <p>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp; * @param args<br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FamilyDAO dao = new FamilyDAO();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 开始事务<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transaction tran = dao.getSession().beginTransaction();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 创建家庭<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Family family = new Family();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; family.setFamilyname("东北旺");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //创建成员<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Member member = new Member();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; member.setAge(25);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; member.setFamily(family);//设置成员所在家庭<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; member.setUsername("张降价");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; member.setPassword("芝麻开门");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 添加成员<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; family.getMembers().add(member);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //保存数据<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dao.save(family);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //提交事务<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tran.commit();<br>&nbsp;&nbsp;&nbsp; }  <p>} <p>&nbsp; <p>&nbsp; <p>视频截图:</p> <p><a href="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse612Hibernate_12D97/MyEclipse6_12_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="738" alt="MyEclipse6_12" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse612Hibernate_12D97/MyEclipse6_12_thumb.png" width="1024" border="0"></a></p><img src ="http://www.blogjava.net/beansoft/aggbug/175551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-01-15 21:30 <a href="http://www.blogjava.net/beansoft/archive/2008/01/15/175551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于MyEclipse 6.0.0 GA开发SSH应用的%%%% Error Creating SessionFactory %%%% java.lang.SecurityException: class &amp;quot;org.apache.commons.collections.SequencedHashMap&amp;quot;'异常的解决方案</title><link>http://www.blogjava.net/beansoft/archive/2008/01/11/174610.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Fri, 11 Jan 2008 05:51:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/01/11/174610.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/174610.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/01/11/174610.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/174610.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/174610.html</trackback:ping><description><![CDATA[
		<p>昨天有读者提到用 MyEclipse 6.0.0 开发 Struts + Hibernate应用的时候，单独测试Hibernate的类没有问题，但是当Web层和Struts整合后，就抛出如下异常：</p>
		<p>%%%% Error Creating SessionFactory %%%%  java.lang.SecurityException: class "org.apache.commons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package  </p>
		<p>因为我用的6.0.1，所以怎么也没出现这个异常。后来Google搜到很多人遇到了这个故障，猜测是commons-collections.jar的问题，可能和MyEclipse 6.0.0自带的包有问题导致。例如下面的是一个解决方案：<a title="http://ttitfly.javaeye.com/blog/131955" href="http://ttitfly.javaeye.com/blog/131955">http://ttitfly.javaeye.com/blog/131955</a></p>
		<p> </p>
		<p>解决方案：</p>
		<p>1）下载 MyEclipse 6.0.1 来开发；</p>
		<p>2）或者去<a title="http://commons.apache.org/collections/ " href="http://commons.apache.org/collections/%20">http://commons.apache.org/collections/ </a>下载一个新的包，把原来的commons-collections-xxx.jar给删了，然后用新的包替换。注意：一定要到应用的发布目录去做这个工作，而且替换后不能重新发布应用，然后立即重启Tomcat再测试。</p>
		<p> </p>
		<p>如果再报下面的错误： <br />ERROR [org.hibernate.proxy.BasicLazyInitializer] - CGLIB Enhancement failed: dao.User <br />java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V <br />at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77) <br />则是： <br />Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar即可</p>
<img src ="http://www.blogjava.net/beansoft/aggbug/174610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-01-11 13:51 <a href="http://www.blogjava.net/beansoft/archive/2008/01/11/174610.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>电子书 《MyEclipse 6 Java 开发中文教程》 第十章 开发 Spring 应用 完工</title><link>http://www.blogjava.net/beansoft/archive/2008/01/07/173395.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Mon, 07 Jan 2008 09:35:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/01/07/173395.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/173395.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/01/07/173395.html#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/173395.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/173395.html</trackback:ping><description><![CDATA[<p></p> <p>第十章 开发Spring应用 已经完成，完整版下载地址：<a href="http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar">http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar</a> 4.03 MB PDF 格式</p> <p>出于众所周知的原因，<strong><font color="#ff0000">本书的电子版的免费下载到此章为止</font></strong>，后续章节及扩充内容以及配套光盘将会出现在印刷版上，我会精益求精，保证书的质量，保证原创。感谢大家对我一贯的精神鼓励，可惜精神鼓励不能当饭吃，呵呵。</p> <p>另外，我失业了，可以说今年经受了不少挫折，不过我没有灰心。为了好的将本书继续写下去，欢迎捐款或者购买源码，预定光盘。如果本书印刷出版，您会买嘛？</p> <p><br>本章目录：</p> <p>第十章 开发Spring应用... 189  <p>10.1 简介... 189  <p>10.1.1 Spring简介... 189  <p>10.1.2 MyEclipse的Spring开发功能简介... 191  <p>10.2 开发简单的Spring应用... 191  <p>10.2.1 给项目加入Spring功能... 191  <p>10.2.2 创建Bean类和配置信息... 193  <p>10.2.3 Spring Beans 视图和Outline视图... 197  <p>10.2.4 运行和测试... 199  <p>10.3 开发Spring 1.2 AOP应用... 200  <p>10.3.1 开发Man对象... 201  <p>10.3.2 开发前置通知（Before advice）对象：FBI 201  <p>10.3.3 装配拦截器和Bean. 202  <p>10.3.4 测试和运行... 203  <p>10.3.5 AOP简介和相关概念... 204  <p>10.4 开发 Spring 2.0 AOP 应用... 206  <p>10.4.1 使用aop 标签实现AOP. 206  <p>10.4.2 使用标注（@AspectJ）实现AOP. 208  <p>10.4.3 开发环绕通知（Around Advice）AOP 应用... 210  <p>10.5 Spring数据库开发... 214  <p>10.5.1 DataSource 和 JDBCTemplate开发... 214  <p>10.5.2 Hibernate 整合 Spring开发... 223  <p>10.5.2.1 创建项目，添加必要的开发功能... 223  <p>10.5.2.2 反向工程生成Spring整合Hibernate的DAO.. 225  <p>10.5.2.3 用Spring 1.2 的事务代理类解决事务提交问题... 232  <p>10.5.2.4 用Spring 2.0 的aop和tx声明式配置解决事务提交问题... 234  <p>10.5.2.5 用Spring 2.0 的@Transactional标注解决事务提交问题（最佳方案） 238  <p>10.5.2.6 使用 HibernateTemplate 实现分页查询... 241  <p>10.6 小结... 242  <p>10.7 参考资料... 242  <p>10.7.1 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法... 242  <p>10.7.2 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法2 - 用 CGLIB 来实现事务管理 245  <p>10.7.3 Spring相关的参考资料... 248  <img src ="http://www.blogjava.net/beansoft/aggbug/173395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-01-07 17:35 <a href="http://www.blogjava.net/beansoft/archive/2008/01/07/173395.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何购买《MyEclipse 6 Java 开发中文教程》DVD光盘（含源代码，视频和软件）及网上答疑</title><link>http://www.blogjava.net/beansoft/archive/2008/01/07/173298.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Mon, 07 Jan 2008 04:32:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2008/01/07/173298.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/173298.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2008/01/07/173298.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/173298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/173298.html</trackback:ping><description><![CDATA[<p></p> <p>大家常说：开源软件的作者也是人，也要吃饭，所以人家提供付费服务是合理的。认真写一本书是很辛苦的，如果您认可并支持作者的辛勤劳动，可以购买本书的配套光盘或者捐款给作者。  <p>本书源代码和讲解视频不提供免费下载。本书附带了配套DVD光盘，光盘内容包括全部源代码，讲解视频和配套软件（第一章提到的所有需要下载和安装的软件），让读者不需要上网就可以实践本书所有内容。光盘价格暂定为50元，付费用户可以享受作者提供的网上答疑服务。  <p>因为本书尚未完成，所以光盘现在只能预定，预定用户现在即可享受最新的源代码和网上答疑服务。  <p>如果您需要定购，请发邮件至 <b><a href="mailto:beansoft@126.com">beansoft@126.com</a></b>询问相关事宜。</p> <p>刘长炯，目前居住中国北京，西安电子科技大学通信工程学士。曾任Synnex China公司系统架构师和Java讲师。从2001年起一直专著于Java方向的学习和开发。所维护的Java博客 <a href="http://www.blogjava.net/beansoft/">http://www.blogjava.net/beansoft/</a> 曾获得2007年12月《程序员》杂志的编辑推荐。  <p>作者提供各种技术顾问服务，欢迎洽谈相关事宜。  <p>电子邮件：<a href="mailto:beansoft@126.com">beansoft@126.com</a>  <p>手机：13810397064（请发短信，谢绝广告推销）  <p>QQ： 9991483（仅限捐款用户网上答疑使用）</p><img src ="http://www.blogjava.net/beansoft/aggbug/173298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2008-01-07 12:32 <a href="http://www.blogjava.net/beansoft/archive/2008/01/07/173298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>电子书 《MyEclipse 6 Java 开发中文教程》 第九章 开发Struts 1.x应用 完工</title><link>http://www.blogjava.net/beansoft/archive/2007/12/27/170997.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Thu, 27 Dec 2007 13:42:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/12/27/170997.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/170997.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/12/27/170997.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/170997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/170997.html</trackback:ping><description><![CDATA[<p>第九章 开发Struts 1.x应用 已经完成，同时对过去章节的参考资料部分追加了很多内容，欢迎参考！<br>接下来将会进入Spring和Struts整合Spring,Hibernate的部分。<br>完整版下载地址：下载：<a href="http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar">http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar</a> 3.4 MB PDF 格式<br>本章目录：<br>第九章 开发Struts 1.x应用&nbsp;&nbsp;&nbsp; 145<br>9.1 介绍&nbsp;&nbsp;&nbsp; 145<br>9.2 创建Struts项目&nbsp;&nbsp;&nbsp; 147<br>9.2.1 创建Web项目&nbsp;&nbsp;&nbsp; 148<br>9.2.2 加入 Struts开发功能&nbsp;&nbsp;&nbsp; 148<br>9.3 使用Struts工具&nbsp;&nbsp;&nbsp; 150<br>9.3.1 Struts配置文件编辑器&nbsp;&nbsp;&nbsp; 150<br>9.3.2 Struts组件向导&nbsp;&nbsp;&nbsp; 152<br>9.4编写登录应用&nbsp;&nbsp;&nbsp; 154<br>9.4.1 应用的流程和目标&nbsp;&nbsp;&nbsp; 154<br>9.4.2 创建登录成功页面&nbsp;&nbsp;&nbsp; 154<br>9.4.3 使用新建Form，Action和JSP的向导创建关键组件&nbsp;&nbsp;&nbsp; 155<br>9.4.4 调整生成的代码&nbsp;&nbsp;&nbsp; 159<br>9.4.5 发布，运行并测试&nbsp;&nbsp;&nbsp; 162<br>9.4.6 练习题：如何用JDBC实现登录？&nbsp;&nbsp;&nbsp; 163<br>9.5 编写Struts整合Hibernate的分页应用&nbsp;&nbsp;&nbsp; 163<br>9.5.1 分页应用的设计思路&nbsp;&nbsp;&nbsp; 163<br>9.5.2 创建StrutsPageDemo项目，加入Hibernate开发功能&nbsp;&nbsp;&nbsp; 169<br>9.5.3 反向工程生成DAO层&nbsp;&nbsp;&nbsp; 169<br>9.5.4 编写分页应用层&nbsp;&nbsp;&nbsp; 170<br>9.5.5 加入Struts表现层和控制层&nbsp;&nbsp;&nbsp; 171<br>9.5.6发布，运行并测试&nbsp;&nbsp;&nbsp; 175<br>9.5.7 练习：如何用Hibernate+Struts实现修改用户信息功能？&nbsp;&nbsp;&nbsp; 175<br>9.6 小结&nbsp;&nbsp;&nbsp; 176<br>9.7 参考资料&nbsp;&nbsp;&nbsp; 176  <img src ="http://www.blogjava.net/beansoft/aggbug/170997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2007-12-27 21:42 <a href="http://www.blogjava.net/beansoft/archive/2007/12/27/170997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>电子书 《MyEclipse 6 Java 开发中文教程》第八章 开发 Web 应用</title><link>http://www.blogjava.net/beansoft/archive/2007/12/21/169400.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Fri, 21 Dec 2007 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/12/21/169400.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/169400.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/12/21/169400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/169400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/169400.html</trackback:ping><description><![CDATA[<p>包含以往所有章节。</p> <p>下载：<a href="http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar">http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar</a> 2.74 MB PDF 格式</p> <p><a href="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaEE_B6DC/clip_image001_2.jpg"><img height="295" alt="clip_image001" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaEE_B6DC/clip_image001_thumb.jpg" width="455" border="0"></a></p> <p>&nbsp;</p> <p><a href="#_Toc186017925">第八章 开发Web应用... 105</a>  <p><a href="#_Toc186017926">8.1介绍... 105</a>  <p><a href="#_Toc186017927">8.2 Web项目和术语... 105</a>  <p><a href="#_Toc186017928">8.2.1 Java EE 中的Web项目结构... 105</a>  <p><a href="#_Toc186017929">8.2.2 MyEclipse Web 项目介绍... 107</a>  <p><a href="#_Toc186017930">8.3 创建Web项目... 107</a>  <p><a href="#_Toc186017931">8.4 创建HTML页面... 109</a>  <p><a href="#_Toc186017932">8.5 创建JSP页面... 110</a>  <p><a href="#_Toc186017933">8.6 创建Servlet 111</a>  <p><a href="#_Toc186017934">8.7 创建Filter(过滤器) 114</a>  <p><a href="#_Toc186017935">8.8 创建数据库访问层(DAO) 117</a>  <p><a href="#_Toc186017936">8.9 修改Servlet调用后台类... 120</a>  <p><a href="#_Toc186017937">8.10 发布，重新发布，运行和测试应用... 121</a>  <p><a href="#_Toc186017938">8.11 调试JSP应用... 122</a>  <p><a href="#_Toc186017939">8.12 向现有Web项目添加Web开发能力... 123</a>  <p><a href="#_Toc186017940">8.13高级设置... 123</a>  <p><a href="#_Toc186017941">8.13.1修改Web项目的默认设置... 123</a>  <p><a href="#_Toc186017942">8.13.2给Web项目加入高级功能... 124</a>  <p><a href="#_Toc186017943">8.14 小结... 124</a></p><img src ="http://www.blogjava.net/beansoft/aggbug/169400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2007-12-21 17:28 <a href="http://www.blogjava.net/beansoft/archive/2007/12/21/169400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>电子书 《MyEclipse 6 Java 开发中文教程》 第七章 Hibernate 开发预览</title><link>http://www.blogjava.net/beansoft/archive/2007/12/19/168742.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Wed, 19 Dec 2007 06:15:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/12/19/168742.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/168742.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/12/19/168742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/168742.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/168742.html</trackback:ping><description><![CDATA[
		<p>下载：<a href="http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar">http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar</a> 2.45 MB PDF 格式</p>
		<p>
				<a href="/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaEE_B6DC/clip_image001_2.jpg">
						<img height="295" alt="clip_image001" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaEE_B6DC/clip_image001_thumb.jpg" width="455" border="0" />
				</a>
		</p>
		<p> </p>
		<p>
		</p>
		<p>
				<a href="#_Toc185836013">
				</a>
		</p>
		<a href="#_Toc185836014">第七章 开发Hibernate应用... 85</a>
		<p>
				<a href="#_Toc185836015">7.1介绍... 85</a>
		</p>
		<p>
				<a href="#_Toc185836016">7.2 Hibernate 一览... 85</a>
		</p>
		<p>
				<a href="#_Toc185836017">7.3准备工作... 86</a>
		</p>
		<p>
				<a href="#_Toc185836018">7.4创建 HibernateDemo 项目... 86</a>
		</p>
		<p>
				<a href="#_Toc185836019">7.4.1创建表格... 86</a>
		</p>
		<p>
				<a href="#_Toc185836020">7.4.2创建 HibernateDemo Java Project 87</a>
		</p>
		<p>
				<a href="#_Toc185836021">7.4.3添加 Hibernate Capabilities 到现有项目... 88</a>
		</p>
		<p>
				<a href="#_Toc185836022">7.4.4 使用Hibernate配置文件编辑器修改文件... 92</a>
		</p>
		<p>
				<a href="#_Toc185836023">7.4.5 使用反向工程快速生成Java POJO类，映射文件和DAO.. 94</a>
		</p>
		<p>
				<a href="#_Toc185836024">7.4.6 调整生成的hbm文件... 96</a>
		</p>
		<p>
				<a href="#_Toc185836025">7.4.7 编写测试代码... 97</a>
		</p>
		<p>
				<a href="#_Toc185836026">7.5 MyEclipse Hibernate工具的高级部分... 98</a>
		</p>
		<p>
				<a href="#_Toc185836027">7.5.1 反向工程向导的完整说明... 98</a>
		</p>
		<p>
				<a href="#_Toc185836028">7.5.2 使用HQL编辑器... 101</a>
		</p>
		<p>
				<a href="#_Toc185836029">7.6 小结... 103</a>
		</p>
		<p>
				<a href="#_Toc185836030">7.7参考资料 104</a>
		</p>
<img src ="http://www.blogjava.net/beansoft/aggbug/168742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2007-12-19 14:15 <a href="http://www.blogjava.net/beansoft/archive/2007/12/19/168742.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse 6 实战开发讲解视频入门 11 Struts 文件上传</title><link>http://www.blogjava.net/beansoft/archive/2007/12/18/168600.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Tue, 18 Dec 2007 14:25:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/12/18/168600.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/168600.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/12/18/168600.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/168600.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/168600.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/beansoft/archive/2007/12/18/168600.html'>阅读全文</a><img src ="http://www.blogjava.net/beansoft/aggbug/168600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2007-12-18 22:25 <a href="http://www.blogjava.net/beansoft/archive/2007/12/18/168600.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>电子书 《MyEclipse 6 Java 开发中文教程》 第五，六章预览</title><link>http://www.blogjava.net/beansoft/archive/2007/12/14/167733.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Fri, 14 Dec 2007 04:14:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/12/14/167733.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/167733.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/12/14/167733.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/167733.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/167733.html</trackback:ping><description><![CDATA[<p>下载：<a href="http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar">http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar</a> 2.2 MB PDF 格式</p> <p><img src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaEE_B6DC/title.jpg"> </p> <p>&nbsp;</p> <p><a href="#_Toc185419007">MyEclipse 6 Java EE 开发中文手册... 1</a>  <p><a href="#_Toc185419008">目 录... 4</a>  <p><a href="#_Toc185419009">介 绍... 8</a>  <p><a href="#_Toc185419010">文档说明... 8</a>  <p><a href="#_Toc185419011">适用的读者... 8</a>  <p><a href="#_Toc185419012">关于作者... 8</a>  <p><a href="#_Toc185419013">版权声明... 8</a>  <p><a href="#_Toc185419014">第一章 安装配置开发环境... 10</a>  <p><a href="#_Toc185419015">1.1系统需求... 10</a>  <p><a href="#_Toc185419016">1.2 JDK 的下载，安装和配置（可选）... 10</a>  <p><a href="#_Toc185419017">1.2.1下载JDK. 10</a>  <p><a href="#_Toc185419018">1.2.2 安装JDK. 13</a>  <p><a href="#_Toc185419019">1.2.3 配置环境变量（可选）... 14</a>  <p><a href="#_Toc185419020">1.2.4 JDK 6 中文文档下载地址(ZIP,HTML,CHM)（可选）... 16</a>  <p><a href="#_Toc185419021">1.3 Tomcat服务器的下载，安装和运行(可选) 17</a>  <p><a href="#_Toc185419022">1.4 JBoss 服务器的下载，安装和运行（可选）... 19</a>  <p><a href="#_Toc185419023">1.5 MySQL 5数据库服务器下载，安装和运行（可选）... 22</a>  <p><a href="#_Toc185419024">1.5.1 MySQL 5 官方版本的下载和安装，运行... 22</a>  <p><a href="#_Toc185419025">1.5.2 MySQL 5绿色版的下载安装和运行... 23</a>  <p><a href="#_Toc185419026">1.5.2.1 下载... 23</a>  <p><a href="#_Toc185419027">1.5.2.2 用法图解... 24</a>  <p><a href="#_Toc185419028">1.6 Eclipse 3.3的下载，安装和运行... 26</a>  <p><a href="#_Toc185419029">1.7 MyEclipse 6的下载，安装和运行... 27</a>  <p><a href="#_Toc185419030">1.7.1下载... 28</a>  <p><a href="#_Toc185419031">1.7.2 安装... 29</a>  <p><a href="#_Toc185419032">1.7.2.1 ALL in ONE 版本的安装... 29</a>  <p><a href="#_Toc185419033">1.7.2.2 插件（PLUG-IN） 版本的安装... 30</a>  <p><a href="#_Toc185419034">1.7.3 运行... 30</a>  <p><a href="#_Toc185419035">1.8小结... 31</a>  <p><a href="#_Toc185419036">第二章 开发第一个Java应用程序... 32</a>  <p><a href="#_Toc185419037">2.1 介绍... 32</a>  <p><a href="#_Toc185419038">2.2 手工编写，编译并运行Java程序... 32</a>  <p><a href="#_Toc185419039">2.3 使用Eclipse/MyEclipse来编写，编译并运行Java程序... 33</a>  <p><a href="#_Toc185419040">2.4小结... 36</a>  <p><a href="#_Toc185419041">第三章 Eclipse 的基础概念，配置和使用... 37</a>  <p><a href="#_Toc185419042">3.1界面布局... 37</a>  <p><a href="#_Toc185419043">3.1.1菜单... 37</a>  <p><a href="#_Toc185419044">3.1.2 工具栏... 37</a>  <p><a href="#_Toc185419045">3.1.3 透视图（Perspective）切换器... 38</a>  <p><a href="#_Toc185419046">3.1.4 视图（View）... 39</a>  <p><a href="#_Toc185419047">3.1.5 上下文菜单（Context Menu）... 41</a>  <p><a href="#_Toc185419048">3.1.6 状态栏（Status Bar）... 41</a>  <p><a href="#_Toc185419049">3.1.7 编辑器（Editor）... 41</a>  <p><a href="#_Toc185419050">3.2 常见概念和操作... 42</a>  <p><a href="#_Toc185419051">3.2.1 项目(Project) 42</a>  <p><a href="#_Toc185419052">3.2.2工作区(Workspace) 42</a>  <p><a href="#_Toc185419053">3.2.3 导入、导出Java项目... 42</a>  <p><a href="#_Toc185419054">3.2.3.1 导入项目... 42</a>  <p><a href="#_Toc185419055">3.2.3.2 导出项目... 43</a>  <p><a href="#_Toc185419056">3.2.4快速修正代码错误... 43</a>  <p><a href="#_Toc185419057">3.2.5优化导入列表... 44</a>  <p><a href="#_Toc185419058">3.2.6添加，修改，删除JRE. 44</a>  <p><a href="#_Toc185419059">3.2.7查看类定义，层次和源码... 44</a>  <p><a href="#_Toc185419060">3.2.8查找类文件（Open Type）... 45</a>  <p><a href="#_Toc185419061">3.2.9源码目录，输出路径，Library和编译器版本设置... 45</a>  <p><a href="#_Toc185419062">3.2.10生成getter和setter 方法... 46</a>  <p><a href="#_Toc185419063">3.2.11格式化源代码... 47</a>  <p><a href="#_Toc185419064">3.2.12注释和取消注释... 47</a>  <p><a href="#_Toc185419065">3.2.13手工和自动编译... 47</a>  <p><a href="#_Toc185419066">3.2.14直接粘贴Java源码为类文件... 47</a>  <p><a href="#_Toc185419067">3.2.15复制项目中的文件... 47</a>  <p><a href="#_Toc185419068">3.2.16断点和调试器... 48</a>  <p><a href="#_Toc185419069">3.2.17快速加入、删除jar包到Build Path. 49</a>  <p><a href="#_Toc185419070">3.2.18查看当前类被哪些类引用... 49</a>  <p><a href="#_Toc185419071">3.2.19设置编辑器字体，颜色和显示行号... 49</a>  <p><a href="#_Toc185419072">3.2.20 Link文件... 50</a>  <p><a href="#_Toc185419073">3.2.21安装插件... 51</a>  <p><a href="#_Toc185419074">3.2.22获取帮助和阅读帮助文档... 51</a>  <p><a href="#_Toc185419075">3.2.23 CVS团队源代码管理（在线阅读）... 51</a>  <p><a href="#_Toc185419076">3.3小结... 51</a>  <p><a href="#_Toc185419077">第四章 用MyEclipse Database Explorer管理数据库... 52</a>  <p><a href="#_Toc185419078">4.1功能一览... 52</a>  <p><a href="#_Toc185419079">4.2使用MyEclipse Database Explorer透视图... 54</a>  <p><a href="#_Toc185419080">4.2.1介绍... 54</a>  <p><a href="#_Toc185419081">4.2.2连接到MyEcipse Derby数据库... 55</a>  <p><a href="#_Toc185419082">4.2.3切换到MyEclipse Database Explorer透视图... 55</a>  <p><a href="#_Toc185419083">4.2.4打开数据库连接... 56</a>  <p><a href="#_Toc185419084">4.2.5关闭数据库连接... 57</a>  <p><a href="#_Toc185419085">4.2.6浏览数据库结构... 57</a>  <p><a href="#_Toc185419086">4.2.7编辑和执行SQL代码段... 58</a>  <p><a href="#_Toc185419087">4.2.8生成实体关系（ER）图... 60</a>  <p><a href="#_Toc185419088">4.2.9编辑表格数据... 61</a>  <p><a href="#_Toc185419089">4.2.10清空表格数据... 62</a>  <p><a href="#_Toc185419090">4.2.11创建和删除表格... 62</a>  <p><a href="#_Toc185419091">4.2.12创建和删除外键... 63</a>  <p><a href="#_Toc185419092">4.2.13创建和删除索引... 64</a>  <p><a href="#_Toc185419093">4.2.14生成SQL语句... 65</a>  <p><a href="#_Toc185419094">4.2.15建立到MySQL数据库的连接... 66</a>  <p><a href="#_Toc185419095">4.3小结... 67</a>  <p><a href="#_Toc185419096">4.4参考资料... 67</a>  <p><a href="#_Toc185419097">第五章 开发JDBC应用... 68</a>  <p><a href="#_Toc185419098">5.1系统需求... 68</a>  <p><a href="#_Toc185419099">5.2创建数据库表格... 68</a>  <p><a href="#_Toc185419100">5.3创建Java项目... 69</a>  <p><a href="#_Toc185419101">5.4添加JDBC驱动到Build Path. 69</a>  <p><a href="#_Toc185419102">5.5编写JDBC访问类... 70</a>  <p><a href="#_Toc185419103">5.6小结... 73</a>  <p><a href="#_Toc185419104">5.7参考资料... 74</a>  <p><a href="#_Toc185419105">第六章 管理应用服务器... 75</a>  <p><a href="#_Toc185419106">6.1简介... 75</a>  <p><a href="#_Toc185419107">6.2 Servers 视图... 75</a>  <p><a href="#_Toc185419108">6.3浏览应用服务器连接器... 76</a>  <p><a href="#_Toc185419109">6.4配置连接器... 77</a>  <p><a href="#_Toc185419110">6.4.1第1步 配置服务器的安装信息... 78</a>  <p><a href="#_Toc185419111">6.4.2第2步 启用连接器... 78</a>  <p><a href="#_Toc185419112">6.4.3第3步 选择启动服务器时候所用的JDK. 78</a>  <p><a href="#_Toc185419113">6.4.3.1可选操作：添加 JVM.. 79</a>  <p><a href="#_Toc185419114">6.5发布并运行Java EE项目... 80</a>  <p><a href="#_Toc185419115">6.5.1 Java EE 项目的发布类型... 80</a>  <p><a href="#_Toc185419116">6.5.1.1 散包发布... 80</a>  <p><a href="#_Toc185419117">6.5.1.2 打包发布... 80</a>  <p><a href="#_Toc185419118">6.5.2向服务器发布应用... 80</a>  <p><a href="#_Toc185419119">6.5.2.1第1步 打开发布对话框... 80</a>  <p><a href="#_Toc185419120">6.5.2.2第2步 点击Add按钮启动新建发布对话框并完成发布... 82</a>  <p><a href="#_Toc185419121">6.6应用服务器的管理和调试... 83</a>  <p><a href="#_Toc185419122">6.6.1启动服务器... 83</a>  <p><a href="#_Toc185419123">6.6.2监控服务器启动过程... 83</a>  <p><a href="#_Toc185419124">6.6.3停止服务器... 83</a>  <p><a href="#_Toc185419125">6.6.4调试发布的企业应用... 84</a>  <p><a href="#_Toc185419126">6.7小结... 84</a>  <p><a href="#_Toc185419127">第七章 开发Hibernate应用... 84</a>  <p><a href="#_Toc185419128">7.1介绍... 85</a>  <p><a href="#_Toc185419129">7.2 Hibernate 一览... 85</a>  <p><a href="#_Toc185419130">7.3准备工作... 86</a>  <p><a href="#_Toc185419131">7.4创建 HibernateDemo 项目... 86</a>  <p><a href="#_Toc185419132">7.4.1创建表格... 86</a>  <p><a href="#_Toc185419133">7.4.2创建 HibernateDemo Java Project 86</a>  <p><a href="#_Toc185419134">7.4.3添加 Hibernate Capabilities 到现有项目... 87</a>  <p><a href="#_Toc185419135">第八章 开发Struts应用... 90</a>  <p><a href="#_Toc185419136">第九章 开发JSF应用... 90</a>  <p><a href="#_Toc185419137">第十章 开发XFire Web Service应用... 90</a>  <p><a href="#_Toc185419138">第十一章 开发Web项目... 90</a>  <p><a href="#_Toc185419139">第十二章 开发JPA应用... 90</a>  <p><a href="#_Toc185419140">第十三章 开发Spring应用... 90</a>  <p><a href="#_Toc185419141">第十四章 开发Spring＋Struts+Hibernate应用... 90</a>  <p><a href="#_Toc185419142">第十五章 MyEclipse UML 开发... 90</a>  <p><a href="#_Toc185419143">第十六章 开发EJB 应用... 90</a>  <p><a href="#_Toc185419144">附录 91</a></p><img src ="http://www.blogjava.net/beansoft/aggbug/167733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/beansoft/" target="_blank">BeanSoft</a> 2007-12-14 12:14 <a href="http://www.blogjava.net/beansoft/archive/2007/12/14/167733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>原创电子书 《MyEclipse 6 Java 开发中文教程》下载</title><link>http://www.blogjava.net/beansoft/archive/2007/12/10/166631.html</link><dc:creator>BeanSoft</dc:creator><author>BeanSoft</author><pubDate>Mon, 10 Dec 2007 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/beansoft/archive/2007/12/10/166631.html</guid><wfw:comment>http://www.blogjava.net/beansoft/comments/166631.html</wfw:comment><comments>http://www.blogjava.net/beansoft/archive/2007/12/10/166631.html#Feedback</comments><slash:comments>36</slash:comments><wfw:commentRss>http://www.blogjava.net/beansoft/comments/commentRss/166631.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/beansoft/services/trackbacks/166631.html</trackback:ping><description><![CDATA[
		<p>目前完成了十章内容，先提供给感兴趣的预览一下。初次写作，不足之处在所难免，不过既然是免费的，也就不用像某些人那样有骗钱的嫌疑了。</p>
		<p>出于众所周知的原因，<strong><font color="#ff0000">本书的电子版的免费下载到此章为止</font></strong>，后续章节及扩充内容以及配套光盘将会出现在印刷版上，我会精益求精，保证书的质量，保证原创。感谢大家对我一贯的精神鼓励，可惜精神鼓励不能当饭吃，呵呵。</p>
		<p>最新进度：<br />第十一章 Spring + Struts 1 + Hibernate 74页 完成<br />第十二章 开发Struts 2 + Spring应用 74页 完成</p>
		<p> 免费版新加入了第十二章 开发Struts 2+Spring应用，这是章节部分内容预览： <a href="http://beansoft.java-cn.org/myeclipse_doc_cn/struts2_demo.pdf" _fcksavedurl="http://beansoft.java-cn.org/myeclipse_doc_cn/struts2_demo.pdf"><strong><font color="#006bad">http://beansoft.java-cn.org/myeclipse_doc_cn/struts2_demo.pdf</font></strong></a> 0.3 MB 20页</p>
		<h4>
				<a name="_Toc187470655">如何购买DVD</a>光盘（含源代码，视频和软件）及网上答疑</h4>
		<p>大家常说：开源软件的作者也是人，也要吃饭，所以人家提供付费服务是合理的。认真写一本书是很辛苦的，如果您认可并支持作者的辛勤劳动，可以购买本书的配套光盘或者捐款给作者。 </p>
		<p>本书源代码和讲解视频不提供免费下载。本书附带了配套DVD光盘，光盘内容包括全部源代码，讲解视频和配套软件（第一章提到的所有需要下载和安装的软件），让读者不需要上网就可以实践本书所有内容。光盘价格暂定为50元，付费用户可以享受作者提供的网上答疑服务。 </p>
		<p>因为本书尚未完成，所以光盘现在只能预定，预定用户现在即可享受最新的源代码和网上答疑服务。 </p>
		<p>如果您需要定购，请发邮件至 <b>beansoft@126.com</b>询问相关事宜。 </p>
		<p>下载：<a href="http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar">http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse6JavaEEDev.rar</a> 4 MB PDF 格式</p>
		<p>内容：</p>
		<p>
				<a href="/images/blogjava_net/beansoft/WindowsLiveWriter/64ba09f7b44f_11855/image_2.png">
						<img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="619" alt="image" src="http://www.blogjava.net/images/blogjava_net/beansoft/WindowsLiveWriter/64ba09f7b44f_11855/image_thumb.png" width="389" border="0" />
						<strong>
								<font color="#006bad"> </font>
						</strong>
				</a>
				<a href="/images/blogjava_net/beansoft/WindowsLiveWriter/MyEclipse6JavaEE_B6DC/title.jpg">
						<font color="#000000"> </font>
				</a>
		</p>
		<p>《MyEclipse 6 Java 开发中文教程》</p>
		<p>
				<b>
				</b>
		</p>
		<p>
				<b>2007</b>
				<b>年</b>
				<b>12</b>
				<b>月</b>
				<b>
				</b>
		</p>
		<p>
				<b>
				</b>
		</p>
		<p>
				<b>刘长炯</b>
				<b>
				</b>
				<b>著</b>
				<b>
				</b>
		</p>
		<h3>
				<a name="_Toc186628094">介 </a>绍</h3>
		<p>Eclipse，日蚀也，日月无光是也！MyEclipse，吾之日月无光乎！此皆望文生义也。 </p>
		<p>吾幼时，乃有幸拜读李时珍先生之《本草纲目》，佩乎图文并盛，折服于李先生谦恭细致之态度也。东壁先生之作，必先亲恭乃告知于读者，己所不能验者，也必附其出处。不才乃想效仿李先生，草拟此图文书，以悼先生焉。 </p>
		<p>本书是讲解MyEclipse 6开发Java EE企业应用的入门图书。该书不但讲解了目前最流行的SSH（Spring、Struts、Hibernate）、JSF、JPA的开发，同时还对SOA实现的基石--Web Service的开发进行了探讨。缺点就是偏于实践操作，没有相关的理论详细介绍部分，对于具有一定开发经验的读者没有吸引力，因此只适合作为初学者使用MyEclipse时的参考书，也可作为培训机构的辅助教材。 </p>
		<p>为了确保读者能够在实际工作中能够灵活运用Myclipse，作者在使用大量插图介绍MyEclipse 6工具的同时，也结合从事培训的经验制作视频教程完整阐述开发过程，并配以完整清晰基于实际项目的源代码和相关软件包，确保初学者能够完整实践书中内容，快速入门。 </p>
		<p>目前网上和市场上Eclipse＋插件开发题材作品较多，写的也很深入。但全面介绍MyEclipse 6进行项目实际开发的还比较少，本书立足于初学者，重点关注快速开发开发功能，例如1分钟Hibernate生成，JPA开发等。作者还具有IT培训公司的实际培训经验，为初学者定制的MyEclipse学习视频深受学生和网上读者欢迎，本书将据此原则开发全部章节的视频讲解操作。 </p>
		<p>MyEclipse 6.0 是现今国内企业流行的基于Eclipse的商业开发工具 MyEclipse的当前最新版本。Eclipse（官方网站：<a href="http://www.eclipse.org/">http://www.eclipse.org/</a> ）是IBM公司主导下的一款开源免费的可以做基础Java项目开发的工具，然而大多数基于Eclipse二次开发的实用开发工具例如MyEclipse，IBM WSAD，BEA Workshop，Jbuilder 2007等等都是商业产品，有别于Eclipse自身开放免费的大旗，这些软件不能免费使用，例如MyEclipse 6.0只有30天的试用期，过期之后需要付费使用。因为Java开发工具领域的四分五裂，至今仍然没有一款IDE（Integrated Development Environment，集成开发环境）可以真正媲美微软的Visual Studio 系列。 </p>
		<p>MyEclipse 6.0 集中了开源和商业软件的开发支持的大多数框架，方便易用，功能强大，获得了广大开发人员的喜爱。用它来开发比自己下载Eclipse然后到处找插件安装要方便快捷的多，因此很多企业里面都用它进行实际的开发。它支持开发调试基于Spring, Hibernate, Struts, JSF, JPA, EJB, Web Service 等 Java EE 技术的项目，还支持建模例如UML。本书就如何使用MyEclipse开发Java EE应用进行简要的介绍，部分内容基于本人翻译的MyEclipse帮助文档。因为作者的水平有限，本书不可能涵盖MyEclipse或者Eclipse的方方面面，仅供初学者作为开发时的参考书来使用。 </p>
		<p>除此之外，也可以使用一些开源免费的或者商业的Java开发工具。包括Sun资助的开源免费的Netbeans 6，支持最新的Java EE 5技术，但是不支持Spring，Hibernate，它的Swing界面设计器和手机可视化开发工具以及JSF可视化工具目前来说处于领先的位置(<a href="http://www.netbeans.org/">http://www.netbeans.org/</a>)；免费小巧的Windows下的开发工具Gel（停止开发了，<a href="http://www.gexperts.com/">http://www.gexperts.com/</a>）；号称最聪明的Java开发工具――商业软件，比较贵：IntelliJ IDEA 7（<a href="http://www.jetbrains.com/idea/">www.jetbrains.com/idea/</a>）；另外还有一款Windows下历史悠久的小开发工具，有商业和免费版本，在初学者中比较常见：JCreator（<a href="http://www.jcreator.com/">http://www.jcreator.com/</a>）；另外还有BEA Workshop，也就是原来的M7，后来被BEA收购了，有免费的JSP编辑器版本，商业版本支持Struts，Spring，Hibernate，说实话这个基于Eclipse的开发工具的可视化程度个人认为是最好的，可是售价也相当的高（<a href="http://workshopstudio.bea.com/">workshopstudio.bea.com</a> ）；WSAD（IBM WebSphere® Studio Application Developer），现在的新名字是Rational Application Developer for WebSphere Software，因为Rational（能想起来的就是ROSE这个UML建模工具）被IBM收购了，商业软件(<a href="http://www-306.ibm.com/software/awdtools/developer/application/">www-306.ibm.com/software/awdtools/developer/application/</a>)；Oracle则在早期购买了JBuilder的源码，后来推出了免费的JDeveloper，这款软件据说其JSF可视化开发功能和Oracle支持（<a href="http://www.oracle.com/technology/global/cn/software/products/jdev/">www.oracle.com/technology/global/cn/software/products/jdev/</a>）都是非常的棒的。这么多开发工具，也在一个侧面印证了Java开发工具的混乱以及Java初学者面临的挑战。 </p>
		<p>
		</p>
		<p>考虑到每个人的时间都是很宝贵的，我已经尽量的去掉了很多无关紧要的内容来保持本书尽可能的少占用页面。节约时间就是延长生命。 </p>
		<p>名词解释：SSH，这是流行的Struts + Spring + Hibernate整合技术的简称。 </p>
		<h4>
				<a name="_Toc186628096">适用的读者</a>
		</h4>
		<p>本书适用于希望了解如何使用MyEclipse 6进行Java EE开发的Java初学者。如果有一定Java语言基础或者Eclipse使用经验，对阅读本书有很大帮助。 </p>
		<p>衷心希望本书能对一些人有所帮助！ </p>
		<h4>
				<a name="_Toc187470656">关于作者</a>
		</h4>
		<p>刘长炯，目前居住中国北京，西安电子科技大学通信工程学士。曾任Synnex China公司系统架构师和Java讲师。从2001年起一直专著于Java方向的学习和开发。所维护的Java博客 <a href="/beansoft/">http://www.blogjava.net/beansoft/</a> 曾获得2007年12月《程序员》杂志的编辑推荐。 </p>
		<p>作者提供各种技术顾问服务，欢迎洽谈相关事宜。 </p>
		<p>电子邮件：<a href="mailto:beansoft@126.com">beansoft@126.com</a></p>
		<p>手机：13810397064（请发短信，谢绝广告推销） </p>
		<p>QQ： 9991483（仅限捐款用户网上答疑使用） </p>
		<h4>
				<a name="_Toc187470657">版权声明</a>
		</h4>
		<p>本文档版权归作者刘长炯所有，仅供个人研究和学习之用，不得用于任何商业目的。在免费、且无任何附加条件的前提下，可在网络媒体中自由传播。未经作者书面许可，不得以其他任何方式进行出版、篡改、编辑。 </p>
		<p>未经作者书面许可，任何商业培训机构不得使用本电子书作为培训教程,否则将依法追究其法律责任。 </p>
		<p>如需部分或者全文引用，请事先征求作者意见。 </p>
		<p>如果发现文中有错误的地方，欢迎将页码和出错的地方反馈给我；欢迎反馈修改建议。 </p>
		<p>目 录 </p>
		<p>MyEclipse 6 Java开发中文教程 1 </p>
		<p>目 录 4 </p>
		<p>介 绍 12 </p>
		<p>文档说明 13 </p>
		<p>适用的读者 13 </p>
		<p>如何购买DVD光盘（含源代码，视频和软件）及网上答疑 13 </p>
		<p>关于作者 14 </p>
		<p>版权声明 14 </p>
		<p>第一章 安装配置开发环境 15 </p>
		<p>1.1系统需求 15 </p>
		<p>1.2 JDK 的下载，安装和配置（可选） 15 </p>
		<p>1.2.1下载JDK 15 </p>
		<p>1.2.2 安装JDK 18 </p>
		<p>1.2.3 配置环境变量（可选） 19 </p>
		<p>1.2.4 JDK 6 中文文档下载地址(ZIP,HTML,CHM)（可选） 21 </p>
		<p>1.3 Tomcat服务器的下载，安装和运行(可选) 22 </p>
		<p>1.4 JBoss 服务器的下载，安装和运行（可选） 24 </p>
		<p>1.5 MySQL 5数据库服务器下载，安装和运行（可选） 27 </p>
		<p>1.5.1 MySQL 5 官方版本的下载和安装，运行 27 </p>
		<p>1.5.2 MySQL 5绿色版的下载安装和运行 28 </p>
		<p>1.5.2.1 下载 28 </p>
		<p>1.5.2.2 用法图解 29 </p>
		<p>1.6 Eclipse 3.3的下载，安装和运行 31 </p>
		<p>1.7 MyEclipse 6的下载，安装和运行 33 </p>
		<p>1.7.1下载 33 </p>
		<p>1.7.2 安装 34 </p>
		<p>1.7.2.1 ALL in ONE 版本的安装 34 </p>
		<p>1.7.2.2 插件（PLUG-IN） 版本的安装 35 </p>
		<p>1.7.2.3 使用ALL In ONE 版本制作MyEclipse绿色版 36 </p>
		<p>1.7.3 运行 37 </p>
		<p>1.8小结 37 </p>
		<p>第二章 开发第一个Java应用程序 39 </p>
		<p>2.1 介绍 39 </p>
		<p>2.2 手工编写，编译并运行Java程序 39 </p>
		<p>2.3 使用Eclipse/MyEclipse来编写，编译并运行Java程序 40 </p>
		<p>2.4小结 43 </p>
		<p>第三章 Eclipse 的基础概念，配置和使用 44 </p>
		<p>3.1界面布局 44 </p>
		<p>3.1.1菜单 44 </p>
		<p>3.1.2 工具栏 44 </p>
		<p>3.1.3 透视图（Perspective）切换器 45 </p>
		<p>3.1.4 视图（View） 46 </p>
		<p>3.1.5 上下文菜单（Context Menu） 48 </p>
		<p>3.1.6 状态栏（Status Bar） 48 </p>
		<p>3.1.7 编辑器（Editor） 48 </p>
		<p>3.2 常见概念和操作 49 </p>
		<p>3.2.1 项目(Project) 49 </p>
		<p>3.2.2工作区(Workspace) 49 </p>
		<p>3.2.3 导入、导出Java项目 49 </p>
		<p>3.2.3.1 导入项目 49 </p>
		<p>3.2.3.2 导出项目 50 </p>
		<p>3.2.4快速修正代码错误 50 </p>
		<p>3.2.5优化导入列表 51 </p>
		<p>3.2.6添加，修改，删除JRE 51 </p>
		<p>3.2.7查看类定义，层次和源码 51 </p>
		<p>3.2.8查找类文件（Open Type） 52 </p>
		<p>3.2.9源码目录，输出路径，Library和编译器版本设置 52 </p>
		<p>3.2.10生成getter和setter 方法 53 </p>
		<p>3.2.11格式化源代码 54 </p>
		<p>3.2.12注释和取消注释 54 </p>
		<p>3.2.13手工和自动编译 54 </p>
		<p>3.2.14直接粘贴Java源码为类文件 54 </p>
		<p>3.2.15复制项目中的文件 54 </p>
		<p>3.2.16断点和调试器 55 </p>
		<p>3.2.17快速加入、删除jar包到Build Path 56 </p>
		<p>3.2.18查看当前类被哪些类引用 56 </p>
		<p>3.2.19设置编辑器字体，颜色和显示行号 56 </p>
		<p>3.2.20 Link文件 57 </p>
		<p>3