﻿<?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-走好脚下的路,让别人去说吧!-随笔分类-JAVA-Eclipse</title><link>http://www.blogjava.net/human2008/category/28802.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 19 Feb 2008 03:04:01 GMT</lastBuildDate><pubDate>Tue, 19 Feb 2008 03:04:01 GMT</pubDate><ttl>60</ttl><item><title>MyEclipse使用技巧</title><link>http://www.blogjava.net/human2008/archive/2008/02/18/180537.html</link><dc:creator>灵!</dc:creator><author>灵!</author><pubDate>Mon, 18 Feb 2008 13:09:00 GMT</pubDate><guid>http://www.blogjava.net/human2008/archive/2008/02/18/180537.html</guid><wfw:comment>http://www.blogjava.net/human2008/comments/180537.html</wfw:comment><comments>http://www.blogjava.net/human2008/archive/2008/02/18/180537.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/human2008/comments/commentRss/180537.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/human2008/services/trackbacks/180537.html</trackback:ping><description><![CDATA[<p>程序代码自动排版：Ctrl+Shift+F，会自动把代码进行格式化的排版，非常方便<br />
快速执行程序：Ctrl&nbsp;+&nbsp;F11第一次执行时，它会询问您执行模式，设置好后，以后只要按这个热键，它就会快速执行。</p>
<p>Ctrl+Shift+/ 加上段注释/**/</p>
<p>Ctrl+Shift+\ 取消段注释/**/</p>
<p>Ctrl+/ 加上行注释或取消行注释</p>
<p>自动汇入所需要的类别：Ctrl+Shift+O</p>
<p>取消自动validation：<br />
取消方法：&nbsp;windows--&gt;perferences--&gt;myeclipse--&gt;validation&nbsp;<br />
除开Manual下面的复选框全部选中之外，其他全部不选&nbsp;<br />
手工验证方法：&nbsp;<br />
在要验证的文件上，单击鼠标右键--&gt;myeclipse--&gt;run&nbsp;validation&nbsp;</p>
<p>按new Remote Site,Name填 <strong>svn</strong> , URL填<a href="http://subclipse.tigris.org/update">http://subclipse.tigris.org/update</a>,一直next到finished为止</p>
<img src ="http://www.blogjava.net/human2008/aggbug/180537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/human2008/" target="_blank">灵!</a> 2008-02-18 21:09 <a href="http://www.blogjava.net/human2008/archive/2008/02/18/180537.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java －－ 在Eclipse上使用Hibernate </title><link>http://www.blogjava.net/human2008/archive/2008/01/11/174496.html</link><dc:creator>灵!</dc:creator><author>灵!</author><pubDate>Fri, 11 Jan 2008 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/human2008/archive/2008/01/11/174496.html</guid><wfw:comment>http://www.blogjava.net/human2008/comments/174496.html</wfw:comment><comments>http://www.blogjava.net/human2008/archive/2008/01/11/174496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/human2008/comments/commentRss/174496.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/human2008/services/trackbacks/174496.html</trackback:ping><description><![CDATA[&nbsp; 最近一个项目要用Java做，一点都不熟啊。没办法，只好硬着头皮啃了，花了大半天的时间，终于在Eclipse上完成了第一个Hibernate例子。下面记录关键的步骤，权作笔记，以备日后查看。<br />
<br />
&nbsp;（1）下载Hibernate，并向项目中导入Hibernate。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Project-&gt;Properies-&gt;Java Build Path-&gt;Libraries-&gt;Add External JARs...，选择Hibernate根目录下的hibernate3.jar，添加到项目中。<br />
&nbsp;&nbsp;&nbsp;&nbsp;接着，要将Hibernate下的lib文件夹下的所有文件都作为一个User Library添加到项目中，否则，如果仅仅添加hibernate3.jar，编译可以通过，运行却会抛出ClassNotDef的异常，因为hibernate3.jar依赖于Hibernate下的lib文件夹下的文件。<br />
<br />
&nbsp;2）我们的应用的后台数据库使用的是Oracle，所以首先要在例子项目中引入含有Oracle jdbc driver的包，classes12.jar。该jar文件位于oracle安装目录的jdbc\lib目录下。<br />
&nbsp;&nbsp;&nbsp;&nbsp;在Eclipse中，Project-&gt;Properies-&gt;Java Build Path-&gt;Libraries-&gt;Add External JARs...，选择classes12.jar，将其添加到项目中。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
（3）生成hibernate.cfg.xml文件。<br />
&nbsp;&nbsp;&nbsp; 通常Hibernate的配置文件和.hbm.xml文件都可以自动生成，这种自动生成的工具很多，我使用的是HibernateSynchronizer，它可以作为一个插件添加到Eclipse中。当HibernateSynchronizer插件正确加载后，我们可以向当前项目中添加Hibernate配置文件：File-&gt;New-&gt;Other-&gt;Hibernate-&gt;Hibernate Configuration File，出现如下界面：<br />
<img style="width: 561px; height: 493px" height="493" alt="" src="http://www.cnblogs.com/images/cnblogs_com/zhuweisky/Hibernate01.JPG" width="561" border="0" /><br />
<br />
&nbsp; 注意，Driver Class要选择针对Oracle的oracle.jdbc.driver.OracleDriver，而且Database&nbsp;URL的格式也要正确，如：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">jdbc:oracle:thin:@</span><span style="color: #000000">10.8</span><span style="color: #000000">.</span><span style="color: #000000">8.221</span><span style="color: #000000">:</span><span style="color: #000000">1521</span><span style="color: #000000">:ORCL</span></div>
<br />
<p>&nbsp;&nbsp;&nbsp;&nbsp;最好将hibernate.cfg.xml文件存放于项目的根目录下。<br />
<br />
&nbsp;4）生成.hbm.xml文件。File-&gt;New-&gt;Other-&gt;Hibernate-&gt;Hibernate Mapping File，出现如下界面：<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/zhuweisky/Hibernate02.JPG" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; 在填写完Password后，点击Refresh按钮，就会在Tables中列出所有可以访问的数据库表，然后选中要为其生成.hbm.xml文件的表，点击Finish，即会生成对应的.hbm.xml文件，比如我上面选择的是Mobileuser表，就会生成Mobileuser.hbm.xml文件。<br />
<br />
（5）从.hbm.xml文件自动生成实体类。<br />
&nbsp;&nbsp;&nbsp; 在Package Explorer中选中Mobileuser.hbm.xml文件，右键-&gt;Hibernate Synchronizer-&gt;Synchronize Files&nbsp;，即可生成对应的实体类和DAO类。如果你仅仅想要实体类，那么可以在Project-&gt;Properies-&gt;Hibernate Synchronizer-&gt;Data Access Objects&nbsp;，将&#8220;I would like to have DAOs created for me&#8221;的钩选项去掉即可。<br />
<br />
（6）在hibernate.cfg.xml文件中添加对应的mapping resource。<br />
&nbsp;&nbsp;&nbsp;&nbsp;在Package Explorer中选中Mobileuser.hbm.xml文件，右键-&gt;Hibernate Synchronizer-&gt;Add Mapping Reference，即会在<br />
hibernate.cfg.xml中自动生成如下配置：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;</span><span style="color: #000000">mapping&nbsp;resource</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">HibernateTest/Mobileuser.hbm.xml</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span></div>
<p>（7）修改自动生成的hibernate.cfg.xml文件。需要在hibernate.cfg.xml文件的首部添加：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;!</span><span style="color: #000000">DOCTYPE&nbsp;hibernate</span><span style="color: #000000">-</span><span style="color: #000000">configuration&nbsp;PUBLIC<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">-//Hibernate/Hibernate&nbsp;Configuration&nbsp;DTD&nbsp;3.0//EN</span><span style="color: #000000">"</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;比较繁琐的是，每次自动修改hibernate.cfg.xml文件后，都要重新添加这个xml片断。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;万事具备，现在可以写个测试来检验一下了：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008000">&nbsp;&nbsp;&nbsp; //</span><span style="color: #008000">仅仅作为示例，没有进行异常处理</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configuration&nbsp;cfg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Configuration().configure()&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SessionFactory&nbsp;&nbsp;sFactory&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cfg.buildSessionFactory()&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sFactory.openSession()&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transaction&nbsp;tx&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.beginTransaction();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mobileuser&nbsp;user&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Mobileuser)session.load(Mobileuser.</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">2</span><span style="color: #000000">))&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;age&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;user.getMobilenumber()&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.</span><span style="color: #0000ff">out</span><span style="color: #000000">.println(age)&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tx.commit();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.close()&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<img src ="http://www.blogjava.net/human2008/aggbug/174496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/human2008/" target="_blank">灵!</a> 2008-01-11 09:34 <a href="http://www.blogjava.net/human2008/archive/2008/01/11/174496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java －－ 在Eclipse上使用Spring </title><link>http://www.blogjava.net/human2008/archive/2008/01/11/174495.html</link><dc:creator>灵!</dc:creator><author>灵!</author><pubDate>Fri, 11 Jan 2008 01:33:00 GMT</pubDate><guid>http://www.blogjava.net/human2008/archive/2008/01/11/174495.html</guid><wfw:comment>http://www.blogjava.net/human2008/comments/174495.html</wfw:comment><comments>http://www.blogjava.net/human2008/archive/2008/01/11/174495.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/human2008/comments/commentRss/174495.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/human2008/services/trackbacks/174495.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 在.NET上用的VS.NET+Spring.net+Nhibernate，到了Java平台上，自然对应着Eclipse+Spring+Hibernate。<a href="http://zhuweisky.cnblogs.com/archive/2006/05/30/413045.html">上一篇文章</a>介绍了如何在Eclipse上使用Hibernate的入门，本文就简单介绍一下如何在Eclipse使用Spring。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;（1）首先，是下载Spring，可以从sourceforge上下载，<a href="http://sourceforge.net/projects/springframework">http://sourceforge.net/projects/springframework</a>。目前的最新的可以下载 spring-framework-1.2.8-with-dependencies.zip 。<br />
<br />
&nbsp;&nbsp;&nbsp; （2）然后，可以将Spring引入到你的项目中。<br />
&nbsp;&nbsp;&nbsp; 先将spring-framework-1.2.8-with-dependencies.zip解压，将其中的spring.jar（dist目录中）、commons-logging.jar（lib\jakarta-commons目录）、log4j-1.2.13.jar（lib\log4j目录）这三个文件复制到的&#8221;D:\java\Spring\lib" 目录中，然后在Eclipse中建立一个&#8220;Spring&#8221;库，将那三个文件添加进&#8220;Spring&#8221;库中。<br />
<br />
&nbsp;&nbsp;&nbsp; （3）测试一下：<br />
&nbsp;&nbsp;&nbsp; 新建两个类，Student和Book。<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Book&nbsp;<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;id&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;bookName&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getBookName()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;bookName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setBookName(String&nbsp;bookName)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.bookName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;bookName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getId()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;id;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setId(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;id)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.id&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;id;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Student&nbsp;<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;age&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;name&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Book&nbsp;book&nbsp;;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getAge()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;age;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setAge(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;age)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.age&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;age;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getName()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setName(String&nbsp;name)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Book&nbsp;getBook()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;book;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setBook(Book&nbsp;book)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.book&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;book;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;GetBookName()<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.book.getBookName()&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />
}</span></div>
<br />
&nbsp;&nbsp;&nbsp; 然后添加Spring配置文件bean.xml（bean.xml必须在CLASSPATH可以存取到的目录中）：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;?</span><span style="color: #000000">xml&nbsp;version</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1.0</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;encoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;!</span><span style="color: #000000">DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">-//SPRING/DTD&nbsp;BEAN/EN</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #000000">"</span><span style="color: #000000">http://www.springframework.org/dtd/spring-beans.dtd</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">beans</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">bean&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">student</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.springTest.Student</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">age</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000">22</span><span style="color: #000000">&lt;/</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">property</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">name</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000">Sky</span><span style="color: #000000">&lt;/</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">property</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">book</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">ref</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">book</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">property</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">bean</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">bean&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">book</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.springTest.Book</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">id</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000">1000</span><span style="color: #000000">&lt;/</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">property</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">property&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">bookName</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000">战争与和平</span><span style="color: #000000">&lt;/</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">property</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">bean</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">beans</span><span style="color: #000000">&gt;</span></div>
<br />
&nbsp;&nbsp;&nbsp; 最后的主程序：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resource&nbsp;res&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ClassPathResource(</span><span style="color: #000000">"</span><span style="color: #000000">bean.xml</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BeanFactory&nbsp;factory&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlBeanFactory(res);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;stu&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Student)&nbsp;factory.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">student</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.</span><span style="color: #0000ff">out</span><span style="color: #000000">.println(stu.GetBookName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
&nbsp;&nbsp;&nbsp; 运行后可以看到控制台输出－－&#8220;战争与和平&#8221;。<br />
<br />
&nbsp;&nbsp;&nbsp; 与Spring.net的使用基本完全一致（包括配置文件、BeanFactory的获取等），所以熟悉Spring.net的你过渡到Spring是非常平滑的。<br />
&nbsp;&nbsp;&nbsp; 最后，Java中的属性实在是没有C#中的简洁，呵呵。<br />
<img src ="http://www.blogjava.net/human2008/aggbug/174495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/human2008/" target="_blank">灵!</a> 2008-01-11 09:33 <a href="http://www.blogjava.net/human2008/archive/2008/01/11/174495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java －－ 在Eclipse上使用XFire开发WebService </title><link>http://www.blogjava.net/human2008/archive/2008/01/11/174493.html</link><dc:creator>灵!</dc:creator><author>灵!</author><pubDate>Fri, 11 Jan 2008 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/human2008/archive/2008/01/11/174493.html</guid><wfw:comment>http://www.blogjava.net/human2008/comments/174493.html</wfw:comment><comments>http://www.blogjava.net/human2008/archive/2008/01/11/174493.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/human2008/comments/commentRss/174493.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/human2008/services/trackbacks/174493.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 终于，使用Java完成了一个WebService的例子，其中的一个非常小的问题，折腾了我将近一天的时间。下面给出步骤，说明在Java平台上如何开发WebService。<br />
<br />
&nbsp;&nbsp;&nbsp; 采用的工具：Eclipse3.1.2 + Tomcat5.5 + XFire1.1 。使用XFire开发WebService应该说非常的容易，只需要按照下面例子的步骤来做：<br />
<br />
（1）在Eclipse中新建一个dynamic Web Project ，假设名为XFireZhuweiTest。<br />
<br />
（2）导入XFire用户库。该库中应包含xfire-1.1目录下的xfire-all-1.1.jar文件，以及<strong>xfire-1.1\lib</strong>目录下的所有文件。<br />
<br />
（3）将上述的XFire用户库中的所有文件拷贝到XFireZhuweiTest项目的<strong>WebContent\WEB-INF\lib</strong>目录下。<br />
<br />
（4）修改<strong>WebContent\WEB-INF\web.xml</strong>配置文件的内容，下面是修改后web.xml：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee">&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br />
&lt;web-app&nbsp;id="WebApp_ID"&nbsp;version="2.4"&nbsp;xmlns="http://java.sun.com/xml/ns/j2ee"&nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&nbsp;xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;display-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;XFireZhuweiTest&lt;/display-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file-list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;default.html&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/welcome-file-list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;XFireServlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.codehaus.xfire.transport.http.XFireConfigurableServlet<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-mapping&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;XFireServlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/servlet/XFireServlet<span style="color: red">/*&lt;/url-pattern&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet-mapping&gt;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-mapping&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;XFireServlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/services/*&lt;/url-pattern&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet-mapping&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&lt;/web-app&gt;<br />
</span></div>
<p>&nbsp;&nbsp;&nbsp; web.xml中添加的servlet映射表明，所有匹配&#8220;/services/*&#8221;的url请求全部交给org.codehaus.xfire.transport.http.XFireConfigurableServlet来处理。<br />
<br />
（5）编写需要发布为WebService的Java类，这个例子中是一个非常简单的MathService.java。</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">package&nbsp;com.zhuweisky.xfireDemo;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MathService&nbsp;<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;Add(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;a&nbsp;,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;b)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;a</span><span style="color: #000000">+</span><span style="color: #000000">b&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
<p>（6）在<strong>WebContent\META-INF</strong>目录下新建<strong>xfire文件夹</strong>，然后在xfire目录下添加一个XFire使用的配置文件services.xml，该配置文件中的内容反映了要将哪些java类发布为web服务。本例中的services.xml内容如下：<br />
<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;?</span><span style="color: #000000">xml&nbsp;version</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1.0</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;encoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">beans&nbsp;xmlns</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">http://xfire.codehaus.org/config/1.0</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">service</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">MathService</span><span style="color: #000000">&lt;/</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&gt;</span><span style="color: #000000">http:</span><span style="color: #008000">//</span><span style="color: #008000">com.zhuweisky.xfireDemo/MathService&lt;/namespace&gt;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">serviceClass</span><span style="color: #000000">&gt;</span><span style="color: #000000">com.zhuweisky.xfireDemo.MathService</span><span style="color: #000000">&lt;/</span><span style="color: #000000">serviceClass</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">service</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">beans</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span></div>
<br />
&nbsp;&nbsp;&nbsp; XFire会借助Spring来解析services.xml，从中提取需要发布为WebService的配置信息。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;很多文章介绍到这里就完了，然而当我按照他们所说的启动WebService&nbsp;，然后通过<a href="http://localhost:8080/XFireZhuweiTest/services/MathService?wsdl">http://localhost:8080/XFireZhuweiTest/services/MathService?wsdl</a>&nbsp;来访问服务描述时，却抛出了异常，说services.xml文件不存在－－<br />
&#8220;org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [META-INF/xfire/services.xml]; nested exception is java.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opened because it does not exist&#8221;。&nbsp;&nbsp; <br />
<br />
（7）非常关键的一点，就是这个小难题花费了我将近一天的时间。<br />
&nbsp;&nbsp;&nbsp; 在<strong>WebContent\WEB-INF</strong>目录下新建<strong>classes</strong>文件夹，然后需要将<strong>WebContent</strong>下的整个<strong>META-INF</strong>文件夹剪切到新建的classes文件夹下。<br />
&nbsp;&nbsp;&nbsp; 到这里，项目的完整目录结构如下：<br />
<br />
<img height="336" alt="" src="http://www.cnblogs.com/images/cnblogs_com/zhuweisky/xfireTest.JPG" width="232" border="0" /><br />
<br />
（8）在Package Explorer中选中XFireZhuweiTest项目，右键-&gt;Run As -&gt;Run On Server，关联到你机器上的TomCat，然后会启动Tomcat，以启动web服务。（注意，在进行此步骤之前，请先停止TomCat）&nbsp;
<p>（9）在IE中输入 <a href="http://localhost:8080/XFireZhuweiTest/services/MathService?wsdl">http://localhost:8080/XFireZhuweiTest/services/MathService?wsdl</a>&nbsp;会得到正确的web服务描述文档。</p>
<p>（10）测试刚发布的webService。我使用C#动态调用Web服务：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</span><span style="color: #008000">C#</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://localhost:8080/XFireZhuweiTest/services/MathService</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">object</span><span style="color: #000000">[]&nbsp;args&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">{</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">2</span><span style="color: #000000">}&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;result&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ESFramework.WebService.WebServiceHelper.InvokeWebService(url&nbsp;,</span><span style="color: #000000">"</span><span style="color: #000000">Add</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;,args)&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(result.ToString());</span></div>
<br />
<p>&nbsp;&nbsp;&nbsp;&nbsp;（关于C#动态调用Web服务，请参见<a href="http://zhuweisky.cnblogs.com/archive/2005/12/07/292472.html">这里</a>）<br />
<br />
&nbsp;&nbsp;&nbsp; 执行后，弹出对话框，显示结果是3。 <br />
</p>
<img src ="http://www.blogjava.net/human2008/aggbug/174493.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/human2008/" target="_blank">灵!</a> 2008-01-11 09:31 <a href="http://www.blogjava.net/human2008/archive/2008/01/11/174493.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用到的Eclipse快捷键 </title><link>http://www.blogjava.net/human2008/archive/2008/01/10/174229.html</link><dc:creator>灵!</dc:creator><author>灵!</author><pubDate>Thu, 10 Jan 2008 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/human2008/archive/2008/01/10/174229.html</guid><wfw:comment>http://www.blogjava.net/human2008/comments/174229.html</wfw:comment><comments>http://www.blogjava.net/human2008/archive/2008/01/10/174229.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/human2008/comments/commentRss/174229.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/human2008/services/trackbacks/174229.html</trackback:ping><description><![CDATA[<h3 style="margin-left: 126pt; text-indent: 21pt">常用到的<span lang="EN-US"><font size="2">Eclipse快捷键</font></span></h3>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+s</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 存盘 </span></p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+/</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </span>注释(取消)代码 </span></p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+shift+/</span> </strong><span lang="EN-US"><span>&nbsp; </span>&nbsp;&nbsp;&nbsp; 注释代码块</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+shift+\</span> </strong><span lang="EN-US"><span>&nbsp; </span>&nbsp;&nbsp;&nbsp; 取消代码块</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Alt+/</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 代码辅助/调出IF语句等程序模板：使用方法：打出if，按ALT+/</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl＋D</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </span>删除一行<span>&nbsp; </span></span><strong><span lang="EN-US" style="font-size: 10.5pt; color: blue; font-family: 'Times New Roman'"><br />
</span></strong></p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+Shift+D</span> </strong><span lang="EN-US"><span>&nbsp; </span></span><span style="font-size: 10.5pt; font-family: 宋体">在</span> <span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'">debug</span> <span style="font-size: 10.5pt; font-family: 宋体">模式里显示变量值</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+1</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>快速修复<span>&nbsp;&nbsp; </span></span></p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+Shift+f</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>代码格式化 </span></p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+Shift+o</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp; </span>整理导入<span>&nbsp;&nbsp; </span></span></p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl+f6</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>切换窗口<span>&nbsp;&nbsp; </span></span></p>
<p><strong><span lang="EN-US" style="color: blue">ctrl+shift+M</span> </strong><span lang="EN-US"><span>&nbsp; </span>导入未引用的包</span> </p>
<p><strong><span lang="EN-US" style="color: blue">ctrl+w<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong>关闭单个窗口</p>
<p><strong><span lang="EN-US" style="color: blue">F3</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>跳转到类、变量的声明</span> </p>
<p><strong><span lang="EN-US" style="color: blue">F11</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>运行上次程序</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Ctrl + F11</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span>调试上次程序</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Alt +</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>回下一个编辑点</span> </p>
<p><strong><span lang="EN-US" style="color: blue">ctrl+shift+T</span> </strong><span lang="EN-US"><span>&nbsp; </span>查找工程中的类</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Alt-left arrow</span> </strong><span lang="EN-US">:<span>&nbsp;&nbsp;&nbsp; </span>在导航历史记录（Navigation History）中后退。就像Web浏览器的后退按钮一样，在利用F3跳转之后，特别有用。（用来返回原先编译的地方）</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Alt+right arrow</span> </strong><span lang="EN-US">:<span>&nbsp;&nbsp; </span>导航历史记录中向前。</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Control+Q</span> </strong><span lang="EN-US">:<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>回到最后依次编辑的地方。这个快捷键也是当你在代码中跳转后用的。特别是当你钻的过深，忘记你最初在做什么的时候。</span> </p>
<p><strong><span lang="EN-US" style="color: blue">ctrl＋Alt＋down</span> </strong><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>复制鼠标所在行到下一行</span> </p>
<p><strong><span lang="EN-US" style="color: blue">Alt+down arrow</span> </strong><span lang="EN-US">: <span>&nbsp;&nbsp;&nbsp;</span>将一行或多行向下移动。</span> </p>
<strong><span lang="EN-US" style="font-size: 10.5pt; color: blue; font-family: 'Times New Roman'">Alt+up arrow<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><span lang="EN-US">将一行或多行</span> <span style="font-size: 10.5pt; font-family: 宋体">向上移动。</span>
<img src ="http://www.blogjava.net/human2008/aggbug/174229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/human2008/" target="_blank">灵!</a> 2008-01-10 11:44 <a href="http://www.blogjava.net/human2008/archive/2008/01/10/174229.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclicpse3.1.1下配置SWT，打包发布SWT程序，转EXE一条龙过程记录 </title><link>http://www.blogjava.net/human2008/archive/2008/01/08/173746.html</link><dc:creator>灵!</dc:creator><author>灵!</author><pubDate>Tue, 08 Jan 2008 11:12:00 GMT</pubDate><guid>http://www.blogjava.net/human2008/archive/2008/01/08/173746.html</guid><wfw:comment>http://www.blogjava.net/human2008/comments/173746.html</wfw:comment><comments>http://www.blogjava.net/human2008/archive/2008/01/08/173746.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/human2008/comments/commentRss/173746.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/human2008/services/trackbacks/173746.html</trackback:ping><description><![CDATA[<p>1.<span style="font-family: 宋体">到</span>www.eclipse.org<span style="font-family: 宋体">上下载</span>SWT.</p>
<p><span style="font-family: 宋体">我这里用的是</span>1.1.0.1<span style="font-family: 宋体">，并且页面上就有推荐的</span>Eclipse3.1.1<span style="font-family: 宋体">，</span>EMF,GEF<span style="font-family: 宋体">。都下载了！</span></p>
<p>2.<span style="font-family: 宋体">按照</span>Eclipse<span style="font-family: 宋体">安装插件的方法，安装</span>SWT,EMF,GEF<span style="font-family: 宋体">。</span></p>
<p>3.<span style="font-family: 宋体">如果不出意外，就可以正常使用了！</span></p>
<p><span style="font-family: 宋体">这里有一个建议：最好使用纯的</span>Eclipse<span style="font-family: 宋体">，我开始用</span>WTP<span style="font-family: 宋体">版的，怎么配置也不行。</span></p>
<p><span style="font-family: 宋体">可以建立</span>Visual Class<span style="font-family: 宋体">，但是不能可视化添加控件，或者看不到控件的属性，或者</span>Text,TextArea<span style="font-family: 宋体">控件无法添加。后来按照以上方法，重新来了一次，</span>OK<span style="font-family: 宋体">了</span>!</p>
<p><span style="font-family: 宋体">二打包发布</span>SWT<span style="font-family: 宋体">程序</span></p>
<p>1.<span style="font-family: 宋体">因为需要</span>SWT<span style="font-family: 宋体">的</span>jar.<span style="font-family: 宋体">但是</span>Eclipse3.1.1<span style="font-family: 宋体">配合的的</span>SWT<span style="font-family: 宋体">不是通过</span>SWT.jar<span style="font-family: 宋体">发布的！是</span>org.eclipse.swt.win32.win32.x86_3.1.0.jar<span style="font-family: 宋体">。里面包括了</span>JINI<span style="font-family: 宋体">的</span>DLL<span style="font-family: 宋体">和</span>SWT<span style="font-family: 宋体">类文件。</span></p>
<p><span style="font-family: 宋体">需要下载</span></p>
<p>http://www.eclipse.org/downloads/download.php?file=/eclipse/dow ... 09290840/swt-3.1.1-win32-win32-x86.zip</p>
<p><span style="font-family: 宋体">这里有</span>SWT.jar<span style="font-family: 宋体">，和</span>3<span style="font-family: 宋体">个</span>DLL,<span style="font-family: 宋体">把他们解压缩出来，备用！</span></p>
<p>2.<span style="font-family: 宋体">通过</span>Eclipse<span style="font-family: 宋体">的导出功能，生成一个可执行的</span>jar<span style="font-family: 宋体">，</span>MANIFEST.MF<span style="font-family: 宋体">文件选择由</span>Eclipse<span style="font-family: 宋体">生成，并且保存到项目中。</span></p>
<p>3.<span style="font-family: 宋体">上面</span>2<span style="font-family: 宋体">的步骤，只是为了得到</span>MANIFEST.MF<span style="font-family: 宋体">文件。下面修改一下这个文件。</span></p>
<p><span style="font-family: 宋体">加上</span> Class-Path: SWT.jar</p>
<p><span style="font-family: 宋体">如果还有其他的</span>jar,<span style="font-family: 宋体">用空格分开，加到后面</span></p>
<p>4.<span style="font-family: 宋体">再生成一次</span>jar,MANIFEST.MF<span style="font-family: 宋体">选择修改后的。</span></p>
<p>5.<span style="font-family: 宋体">将打包的</span>jar,SWT.jar,3<span style="font-family: 宋体">个</span>DLL<span style="font-family: 宋体">放到一个文件夹下，双击可执行的</span>jar<span style="font-family: 宋体">，程序运行！</span></p>
<p><span style="font-family: 宋体">三</span>jar<span style="font-family: 宋体">转</span>EXE</p>
<p>1.<span style="font-family: 宋体">打开</span>JSmooth0.9.9-7<span style="font-family: 宋体">。</span><a href="http://www610.fixdown.com/jsmooth-0.9.9-7-setup.exe">http://www610.fixdown.com/jsmooth-0.9.9-7-setup.exe</a></p>
<p>2.<span style="font-family: 宋体">选择</span>skeleton,<span style="font-family: 宋体">在</span>skeleton properties<span style="font-family: 宋体">中先把</span>Launch java app in the exe process,Debug console<span style="font-family: 宋体">选中。可以查看生成</span>EXE<span style="font-family: 宋体">文件执行过程信息。</span></p>
<p>3.<span style="font-family: 宋体">选择</span>Executable.</p>
<p><span style="font-family: 宋体">选择生成的</span>EXE<span style="font-family: 宋体">文件存放位置。</span></p>
<p><span style="font-family: 宋体">选择</span>EXE<span style="font-family: 宋体">文件图标</span></p>
<p><span style="font-family: 宋体">设置当前路径，选择要转换的</span>jar<span style="font-family: 宋体">文件所在文件夹</span></p>
<p>4.<span style="font-family: 宋体">选择</span>Application</p>
<p><span style="font-family: 宋体">设置</span>Main Class,<span style="font-family: 宋体">可执行</span>jar<span style="font-family: 宋体">中的</span>Main Class<span style="font-family: 宋体">注意写类全名</span></p>
<p><span style="font-family: 宋体">设置</span>Application Argument,<span style="font-family: 宋体">如果需要传入参数，写到这里</span></p>
<p><span style="font-family: 宋体">设置</span>Embedded jar: <span style="font-family: 宋体">可执行的</span>jar</p>
<p><span style="font-family: 宋体">设置</span>Classpath<span style="font-family: 宋体">：</span>SWT.jar <span style="font-family: 宋体">如果有其他的继续添加</span></p>
<p>5.<span style="font-family: 宋体">选择</span>JVM Selection<span style="font-family: 宋体">。默认吧。</span></p>
<p>6.JVM Configuration:</p>
<p><span style="font-family: 宋体">可以设置</span>java properties,<span style="font-family: 宋体">内存使用</span></p>
<p>7.<span style="font-family: 宋体">点齿轮。生成！看是否有错误。</span></p>
<p>8.EXE<span style="font-family: 宋体">执行需要的文件：</span>EXE,3<span style="font-family: 宋体">个</span>DLL<span style="font-family: 宋体">，</span>SWT.jar</p>
<p><span style="font-family: 宋体">把他们考到其他目录，一样可以执行！</span></p>
<p>9.<span style="font-family: 宋体">去掉</span>skeleton properties<span style="font-family: 宋体">中的</span>Launch java app in the exe process,Debug console<span style="font-family: 宋体">选项。</span></p>
<p><span style="font-family: 宋体">重新生成。应该</span>OK<span style="font-family: 宋体">了！</span></p>
<p>-----</p>
<p><span style="font-family: 宋体">看了这个，终于完成了</span>SWT<span style="font-family: 宋体">程序打包，太爽了</span></p>
<img src ="http://www.blogjava.net/human2008/aggbug/173746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/human2008/" target="_blank">灵!</a> 2008-01-08 19:12 <a href="http://www.blogjava.net/human2008/archive/2008/01/08/173746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>