﻿<?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.net#BlogJava-文章分类-开源项目</title><link>http://www.blogjava.net/gaofeng/category/23778.html</link><description>Java.net</description><language>zh-cn</language><lastBuildDate>Tue, 03 Jul 2007 12:34:08 GMT</lastBuildDate><pubDate>Tue, 03 Jul 2007 12:34:08 GMT</pubDate><ttl>60</ttl><item><title>[导入]GWT出1.4版本了</title><link>http://www.blogjava.net/gaofeng/articles/127585.html</link><dc:creator>Java.net</dc:creator><author>Java.net</author><pubDate>Sat, 16 Jun 2007 14:50:00 GMT</pubDate><guid>http://www.blogjava.net/gaofeng/articles/127585.html</guid><wfw:comment>http://www.blogjava.net/gaofeng/comments/127585.html</wfw:comment><comments>http://www.blogjava.net/gaofeng/articles/127585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gaofeng/comments/commentRss/127585.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gaofeng/services/trackbacks/127585.html</trackback:ping><description><![CDATA[<br>网站：<a href="http://www.javaeye.com/">JavaEye</a> 作者：<a href="http://xzgf.javaeye.com/">jvincent</a> 发表时间: 2007-06-16 22:50 此文章来自于 <a href="http://www.javaeye.com/">http://www.JavaEye.com</a> <br>声明：本文系JavaEye网站原创文章，未经JavaEye网站或者作者本人书面许可，任何其他网站严禁擅自发表本文，否则必将追究法律责任！<br>原文链接：<a style="COLOR: red" href="http://xzgf.javaeye.com/blog/91085"> http://xzgf.javaeye.com/blog/91085 </a><br><br>
<table width="100%">
    <tbody>
        <tr>
            <td>
            <p>
            <p>看了google开发日的演讲录像，得知gwt已经发布1.4版本了。看了一下，据说对速度有了很大的提升。不知道有人升级了没有啊。。目前的gwt应用编译速度太慢了。。</p>
            <p>&#160;</p>
            </td>
        </tr>
    </tbody>
</table>
<br><br><br><span style="COLOR: red"><a style="COLOR: red" href="http://xzgf.javaeye.com/blog/91085">《 GWT出1.4版本了 》 的评论也很精彩，欢迎您也添加评论。查看详细 &gt;&gt;</a></span> <br><br>推荐相关文章：<br>&nbsp;&nbsp;<a href="http://www.javaeye.com/topic/58084">GWT整合SPRING</a><br>&nbsp;&nbsp;<a href="http://www.javaeye.com/topic/54670">[原创]用GWT实现动态装载树</a><br><br><br><br><br><span style="COLOR: #e28822">JavaEye推荐</span><br><a href="http://www.javaeye.com/topic/92392">广州：梦境网络公司：薪水＋期权诚聘高级人才 C++工程师 和 Java工程师</a><br><a href="http://www.javaeye.com/topic/92382">北京：高薪诚聘Ruby on Rails高手： 月薪15－25K</a><br><a href="http://www.javaeye.com/topic/92797">上海：尤恩斯国际集团：诚聘开发工程师</a><br><a href="http://www.javaeye.com/topic/69984">北京：优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA</a><br><br><br><br>文章来源:<a href="http://xzgf.javaeye.com/blog/91085"> http://xzgf.javaeye.com/blog/91085 </a>
<img src ="http://www.blogjava.net/gaofeng/aggbug/127585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gaofeng/" target="_blank">Java.net</a> 2007-06-16 22:50 <a href="http://www.blogjava.net/gaofeng/articles/127585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]通过Spring进行远程服务访问</title><link>http://www.blogjava.net/gaofeng/articles/127586.html</link><dc:creator>Java.net</dc:creator><author>Java.net</author><pubDate>Thu, 01 Mar 2007 09:05:00 GMT</pubDate><guid>http://www.blogjava.net/gaofeng/articles/127586.html</guid><wfw:comment>http://www.blogjava.net/gaofeng/comments/127586.html</wfw:comment><comments>http://www.blogjava.net/gaofeng/articles/127586.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gaofeng/comments/commentRss/127586.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gaofeng/services/trackbacks/127586.html</trackback:ping><description><![CDATA[<br>网站：<a href="http://www.javaeye.com/">JavaEye</a> 作者：<a href="http://xzgf.javaeye.com/">jvincent</a> 发表时间: 2007-03-01 17:05 此文章来自于 <a href="http://www.javaeye.com/">http://www.JavaEye.com</a> <br>声明：本文系JavaEye网站原创文章，未经JavaEye网站或者作者本人书面许可，任何其他网站严禁擅自发表本文，否则必将追究法律责任！<br>原文链接：<a style="COLOR: red" href="http://xzgf.javaeye.com/blog/56776"> http://xzgf.javaeye.com/blog/56776 </a><br><br>
<table width="100%">
    <tbody>
        <tr>
            <td>
            <p>
            <p><font face=Arial>最近在做一个项目开发框架.前台使用Applet,服务器端最先考虑使用EJB3进行开发,但由于EJB采用的是RMI-IIOP协议进行底层数据传输,难于跨越防火墙,故考虑使用Spring提供的远程服务访问技术进行服务器端的编程.测试成功,记录下来..</font></p>
            <br>
            <p><font face=Arial>环境:Eclipse3.2.2 JDK1.5 Spring2.0.2</font></p>
            <br>
            <p><font face=Arial>1、由于客户端采用Applet,需要下载代码到客户端,简单起见,将所有的class都打包在一个jar包中,供客户端下载.以后考虑对下载的类进行缓存,以提高应用效率.<br><br>2、在IE中对applet进行配置,通过classid可以检测客户端的jre环境,如果不是需要的jdk版本,这里为1.5,则通过/Client下的客户端程序进行下载.由于应用定位于局域网中,下载一个20多M的程序应该不成问题..<br><br>3、applet访问本地资源的策略略过,有兴趣的可以留言....</font></p>
            <br>
            <p><font face=Arial>下面主要介绍一下如果在Spring2.0.2中进行远程服务访问<br><br>1、定义客户端接口,此接口是暴露给客户端的....<br><br></font></p>
            <br>
            <p><font face=Arial>接口中只有一个方法sayHello,作用是;根据客户端传入的str,传到服务器端连接一个字符串,再传到客户端.</font></p>
            <br>
            <p><font face=Arial>2、定义一个类,实现IHelloWorld接口.<br><br></font></p>
            <br>
            <p><font face=Arial>3、接下来就是通过xml文件进行组件的配置..<br><br>Spring的远程服务访问是通过org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter和org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean 两个类来实现的.HttpInvokerServiceExporter负责将定义的服务进行导出,是目标服务暴露出来.HttpInvokerProxyFactoryBean 负责客户端代理.将http的post请求定位到指定的服务.默认情况下,Spring使用J2SE的http功能.可以通过注入将commons的httpclient指定给HttpInvokerProxyFactoryBean..<br><br>步骤: <br><br>1、web.xml文件:添加org.springframework.web.context.ContextLoaderListener监听.定义一个org.springframework.web.servlet.DispatcherServlet<br><br>命名为&nbsp;httpinvoker..之后当服务器启动是会自动到WEB-INF下寻找httpinvoker-servlet.xml文件进行bean初始化.<br><br>之后定义一个servlet-mapping,使所有以/http/结尾的请求全部定位到httpinvoker Servlet上<br><br>2、applicationContext.xml 定义一个Bean &nbsp;初始化HelloWorldImpl.<br><br>3、httpinvoker-servlet.xml 定义两个Bean BeanNameUrlHandlerMapping用于根据BeanName进行映射...HttpInvokerServiceExporter用于远程服务导出.<br><br>4、以上三步就已经完成了远程服务的复制工作.以下实现客户端的调用配置.clientContext.xml用于配置客户端的访问..即指定服务器的地址、端口等基础信息.<br><br>5、最后就可以在代码进行初始化clientContext.xml文件,通过ctx.getBean(helloWorldService);来进行访问了.</font></p>
            <br>
            <p>&nbsp;</p>
            <br>
            <div class=code_title>java 代码</div>
            <br>
            <div class=dp-highlighter><br>
            <div class=bar></div>
            <br>
            <ol class=dp-j><br>
                <li class=alt><span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>class</span><span>&nbsp;HelloWorldImpl&nbsp;</span><span class=keyword>implements</span><span>&nbsp;IHelloWorld&nbsp;{ &nbsp;&nbsp;</span></span> <br>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;String&nbsp;sayHello(String&nbsp;str)&nbsp;{ &nbsp;&nbsp;</span> <br>
                <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>return</span><span>&nbsp;str&nbsp;+　&nbsp;</span><span class=string>"&nbsp;,&nbsp;&nbsp;欢迎使用Spring远程服务访问..."</span><span>&nbsp;&nbsp;</span> <br>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> <br>
                <li class=alt><span>} &nbsp;&nbsp;</span> <br></li>
            </ol>
            <br></div>
            <br>
            <p>&nbsp;</p>
            <br>
            <div class=code_title>java 代码</div>
            <br>
            <div class=dp-highlighter><br>
            <div class=bar></div>
            <br>
            <ol class=dp-j><br>
                <li class=alt><span><span class=keyword>public</span><span>&nbsp;</span><span class=keyword>interface</span><span>&nbsp;IHelloWorld&nbsp;{&nbsp; &nbsp;&nbsp;</span></span> <br>
                <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword>public</span><span>&nbsp;&nbsp;String&nbsp;sayHello(String&nbsp;str); &nbsp;&nbsp;</span> <br>
                <li class=alt><span>} &nbsp;&nbsp;</span> <br></li>
            </ol>
            <br></div>
            <p>&#160;</p>
            </td>
        </tr>
    </tbody>
</table>
<br><br><br><span style="COLOR: red"><a style="COLOR: red" href="http://xzgf.javaeye.com/blog/56776">《 通过Spring进行远程服务访问 》 的评论也很精彩，欢迎您也添加评论。查看详细 &gt;&gt;</a></span> <br><br>推荐相关文章：<br>&nbsp;&nbsp;<a href="http://www.javaeye.com/topic/56249">Google Guice - 比Spring快100倍的IoC容器</a><br>&nbsp;&nbsp;<a href="http://www.javaeye.com/topic/54260">关于Service和DAO层的功能划分的迷惑</a><br><br><br><br><br><span style="COLOR: #e28822">JavaEye推荐</span><br><a href="http://www.javaeye.com/topic/92392">广州：梦境网络公司：薪水＋期权诚聘高级人才 C++工程师 和 Java工程师</a><br><a href="http://www.javaeye.com/topic/92382">北京：高薪诚聘Ruby on Rails高手： 月薪15－25K</a><br><a href="http://www.javaeye.com/topic/92797">上海：尤恩斯国际集团：诚聘开发工程师</a><br><a href="http://www.javaeye.com/topic/69984">北京：优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA</a><br><br><br><br>文章来源:<a href="http://xzgf.javaeye.com/blog/56776"> http://xzgf.javaeye.com/blog/56776 </a>
<img src ="http://www.blogjava.net/gaofeng/aggbug/127586.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gaofeng/" target="_blank">Java.net</a> 2007-03-01 17:05 <a href="http://www.blogjava.net/gaofeng/articles/127586.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入](转贴)Classpath和Codebase</title><link>http://www.blogjava.net/gaofeng/articles/127587.html</link><dc:creator>Java.net</dc:creator><author>Java.net</author><pubDate>Tue, 27 Feb 2007 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/gaofeng/articles/127587.html</guid><wfw:comment>http://www.blogjava.net/gaofeng/comments/127587.html</wfw:comment><comments>http://www.blogjava.net/gaofeng/articles/127587.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gaofeng/comments/commentRss/127587.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gaofeng/services/trackbacks/127587.html</trackback:ping><description><![CDATA[<br>网站：<a href="http://www.javaeye.com/">JavaEye</a> 作者：<a href="http://xzgf.javaeye.com/">jvincent</a> 发表时间: 2007-02-27 10:38 此文章来自于 <a href="http://www.javaeye.com/">http://www.JavaEye.com</a> <br>声明：本文系JavaEye网站原创文章，未经JavaEye网站或者作者本人书面许可，任何其他网站严禁擅自发表本文，否则必将追究法律责任！<br>原文链接：<a style="COLOR: red" href="http://xzgf.javaeye.com/blog/56171"> http://xzgf.javaeye.com/blog/56171 </a><br><br>
<table width="100%">
    <tbody>
        <tr>
            <td>
            <p>
            <p>Classpath和Codebase<br><br><br><br><br><br><br><br>概要<br><br><br><br>Classpath和Codebase是Java中非常重要的两个概念，初学者如果没有掌握这两个概念，在遇到诸如ClassNotFoundException或者相关的异常时不知所措。另外，很多其它方面的错误往往也和Classpath有关。本文将详细解释这两个概念，并且描述在命令行方式和集成开发环境（以JBuilder为例）中的设置方式。&nbsp;<br><br><br><br>什么是Classpath<br><br><br><br>Classpath是Java中的重要概念，它描述了Java虚拟机在运行一个Class时在哪些路径中加载要运行的类以及运行的类要用到的类。简单的说，就是像操作系统的path，只不过这个classpath是由Java的虚拟机来使用查找需要加载的类，而操作系统的path是由操作系统用来查找用户输入的可执行程序。同path一样，classpath也是一个环境变量，可以通过set命令来设置。&nbsp;<br><br><br><br>Classpath和Java包的关系<br><br><br><br>Java的包（Package）和classpath关系密切。包是以&#8220;.&#8221;分割的，SUN建议使用域名的逆向排列来区分不同的包，以避免冲突，如com.company.util。在一个包里的类在存储的时候需要存储在和包名相同的目录里，如上述com.company.util包中的Sample.class，要存储在com\company\util目录中。&nbsp;<br><br>Classpath有两种表达方式，一种是指向目录的classpath，如C:\work\classes，表示C:\work\classes目录是一个classpath条目；另一种方式是指向压缩文件的classpath，如C:\work\util.jar，表示C:\work\util.jar文件是一个classpath条目，任何一个包含Java类的zip格式的压缩文件都可以作为classpath的条目。&nbsp;<br><br>那么classpath和包到底是什么关系呢？简单的说，就是Java虚拟机在加载类的时候以这样一种方式查找具体的类文件：classpath＋包存储的目录＋具体的类文件。如classpath中有一个c:\work\classes条目，需要加载的类是com.company.util.Sample.class，那么在加载这个类的时候，虚拟机会查找c:\work\classes\com\company\util目录，如果Sample.class在这个目录中，虚拟机就可以找到，如果这个类不在这个目录中，同时也不在任何一个其它classpath中，那么虚拟机会抛出一个ClassNotFoundException。&nbsp;<br><br><br><br>Classpath的顺序和类版本冲突<br><br><br><br>Java虚拟机在加载类的时候查找classpath是有顺序的，如果在classpath中有多个条目都有同一个名称的类，那么在较前位置的类会被加载，后面的会被忽略。这种按照顺序的类加载可能会导致类的版本冲突。例如classpath＝c:\servlet2.2\servlet.jar；c:\servlet2.3\servlet.jar，那么在实际应用的过程中，你使用的是servlet2.2，而不是servlet2.3。很多时候如果不注意这一点，可能会导致奇怪的异常。&nbsp;<br><br><br><br>命令行状态下的classpath设置<br><br><br><br>命令行状态下的classpath可以通过两种方式设置。&nbsp;<br><br>一种是直接设置环境变量，例如在windows环境下，我们使用set命令：&nbsp;<br><br>set&nbsp;classpath＝c:\work\classes；c:\work\util.jar&nbsp;<br><br>另一种方式是在执行javac、java或者其它Java命令时直接指定classpath：&nbsp;<br><br>java&nbsp;-classpath&nbsp;c:\work\classes;c:\work\util.jar&nbsp;com.company.util.Sample&nbsp;<br><br><br><br>集成开发环境下的classpath设置<br><br><br><br>集成开发环境中设置classpath一般通过其用户界面进行，各种集成开发环境的classpath设置各不相同，我们以JBuilder为例来说明集成开发环境下的classpath。&nbsp;<br><br>1.设置Jbuilder的Library&nbsp;<br><br>JBuilder中的classpath要通过类库来设置，首先选择Tools-&gt;;Configure&nbsp;Library，然后点击New按钮，点击Add...，可以选择要增加的类库，这个类库可以是目录，也可以是zip格式的压缩文件，如.jar或者.zip。&nbsp;<br><br>2.设置项目需要用到的Library&nbsp;<br><br>在设置了类库之后，在JBuilder中运行一个class时并不会马上查找你加入的类库，而是要在Project-&gt;;Project&nbsp;Properties-&gt;;Path-&gt;;Required&nbsp;Library中设置，选择Add...按钮，你就可以增加自己的classpath条目了。&nbsp;<br><br><br><br>什么是Codebase<br><br><br><br>使用Java语言编写的程序，不仅可以在本地的classpath中加载类，也可以根据需要从网络上下载类。为了使Java程序可以从网络上下载类，我们需要使用codebase，codebase指定了Java程序在网络上何处可以找到需要的类。&nbsp;<br><br><br><br>在Java&nbsp;Applet中使用codebase<br><br><br><br>众所周知，可以在Java&nbsp;Applet中使用codebase指定Applet加载其所需要的类的网络位置.<br><br><br><br>这个Applet指定了其所用的类可以在服务器上Applet所在的目录下找到。&nbsp;<br><br><br><br>在Java&nbsp;Application中使用codebase<br><br><br><br>不仅在Applet中可以使用codebase，在Application中也可以使用codebase。这样Application除了可以使用classpath中的类，还可以使用网络上的类。例如：&nbsp;<br><br>java&nbsp;－classpath&nbsp;c:\work\classes&nbsp;－codebase&nbsp;http://www.company.com/classes&nbsp;Sample&nbsp;<br><br>应用程序Sample不仅可以使用c:\work\classes中的类，还可以使用http://www.company.com/classes中的类。&nbsp;<br><br><br><br>Classpath和codebase的关系<br><br><br><br>既然Java虚拟机即可以在classpath中加载类，又可以在codebase中加载类，那么classpath和codebase是什么关系呢？实际上，Classpath和codebase都是由系统类加载器（Class&nbsp;Loader）使用的。类加载器在加载一个类的时候，首先在classpath中查找需要的类，然后在codebase中查找，第一个被查找到的类会被加载。例如，在早期的JDK版本中，缺省codebase是空值，如果没有在classpath中指定&#8220;.&#8221;（当前目录），运行当前目录下的java&nbsp;class时会出现ClassNotFoundException；而在晚些版本中，缺省codebase是&#8220;.&#8221;，所以即使不在classpath中加入&#8220;.&#8221;，当前目录下的java&nbsp;class仍然可以正常运行。&nbsp;<br><br><br><br>总结<br><br><br><br>初学Java的朋友一定要掌握classpath和codebase的概念，理解其内涵，如果出现编译、运行程序的过程中出现什么问题，首先应该考虑是否是classpath的问题。实际上，甚至一些非常复杂的应用中，比如服务器端应用，都会因为classpath的设置而出现莫名其妙的问题。如果大家在阅读本文的过程中有什么问题，请提出来大家一起讨论。</p>
            <p>&#160;</p>
            </td>
        </tr>
    </tbody>
</table>
<br><br><br><span style="COLOR: red"><a style="COLOR: red" href="http://xzgf.javaeye.com/blog/56171">《 (转贴)Classpath和Codebase 》 的评论也很精彩，欢迎您也添加评论。查看详细 &gt;&gt;</a></span> <br><br><br><br><br><br><span style="COLOR: #e28822">JavaEye推荐</span><br><a href="http://www.javaeye.com/topic/92392">广州：梦境网络公司：薪水＋期权诚聘高级人才 C++工程师 和 Java工程师</a><br><a href="http://www.javaeye.com/topic/92382">北京：高薪诚聘Ruby on Rails高手： 月薪15－25K</a><br><a href="http://www.javaeye.com/topic/92797">上海：尤恩斯国际集团：诚聘开发工程师</a><br><a href="http://www.javaeye.com/topic/69984">北京：优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA</a><br><br><br><br>文章来源:<a href="http://xzgf.javaeye.com/blog/56171"> http://xzgf.javaeye.com/blog/56171 </a>
<img src ="http://www.blogjava.net/gaofeng/aggbug/127587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gaofeng/" target="_blank">Java.net</a> 2007-02-27 10:38 <a href="http://www.blogjava.net/gaofeng/articles/127587.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>