⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.html

📁 写给JSP初级程序员的书
💻 HTML
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<meta name="description" content="Java,JDBC,EJB,Open Source,jdk,rmi">
<meta name="Keywords"
content="Java, servlets, Java servlet, Javascript, ActiveX, VRML,
        applet, applets, directory, news, jdbc, applications, 
        Java applications, Java developer, Java development, developer, 
        classes, Jars.com, Jars, intranet, Java applet, Javabeans, 
        Java products, JDK, Java development kit, java development environment, JIT,
        JavaPlan, enterprise tools, JVM, Java Virtual Machine, Java resources, 
        SUN, CGI, Perl, database, network, html,
        xml, dhtml, rating, ratings, review, jars, cgi, programming,
        software review, software rating">
<title>csdn_jini和RMI开发中的codebase问题</title>
<style>
.news {   BACKGROUND: #007cd3;  font-family: "宋体"; font-size: 9pt }
.t {  font-family: "宋体"; font-size: 9pt }
.t1 { color:#007cd3;  font-family: "宋体"; font-size: 9pt }
.white { font-family: "宋体"; font-size: 9pt;color:#FFFFFF }
.red { font-family: "宋体"; font-size: 9pt;color:#FF0000 }
A:visited {color:#0000FF}
A:hover {color: #ff6666; text-decoration: none}
.text {font-size: 12px; line-height: 160%; font-family: "宋体"}
.text1 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text1:visited {color:#000000}
.text1:hover {color: #000000}
.text2 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text2:visited {color:#000000}
.text2:hover {color: #000000}
.text3 {font-size: 12px; line-height: 100%; font-family: "宋体"; text-decoration: none}
.large {font-size: 14.8px; line-height: 130%}
</style>
</head>

<body>







  <tr>
    <td WIDTH="100%" VALIGN="TOP"><table WIDTH="100%" BORDER="0" cellpadding="0"
    cellspacing="0">
      <tr>
        <td WIDTH="100%" CLASS="white"></td>
      </tr>
    
    
      <tr>
        <td WIDTH="50%" bordercolor="#FFFFFF"   align="center" nowrap>jini和RMI开发中的codebase问题 </td><br><p>
        
      </tr>
      <tr>        <td WIDTH="100%" bordercolor="#FFFFFF" CLASS="t"  colspan="2"><p>
        <P> codebase问题其实是一个怎样从网络上下载类的问题,我想不只是在Jini和RMI程序开发中要用到。只要需要从网络上下载类,就要涉及到codebase问题。例如applet等。但是因为我对applet程序不是很熟悉,所以我就只谈Jini和RMI,但我想codebase问题应该是通用的。<P>毫无疑问,对于大多数Jini和RMI开发新手来说,如何使用codebase是比较容易令人迷惑的一件事。(我的一位师妹就很痛苦过,而且怀疑这个是不是sun的一个骗局:P)下面我就讲讲codebase要注意的几个方面,也就是容	易出问题的地方。<P>一、为什么需要codebase<P>当我们用一个对象作为远程方法调用的参数时,对象是以序列化流来传输到远端,然后在远端重新生成对象。这样就可能在两个Java虚拟机中交换对象了。
	但是序列化是这种传递对象的一部分。当你序列化对象时,你仅仅是把对象的成员数据转化成字节流,而实际实现
	该对象的代码却没有。也就是说,传递的只是数据部分,而做为控制逻辑的程序代码部分却没有被传递。
    这就是RMI初学者容易误解的地方,我已经序列化对象了,而且对象也传过去了,怎么还说找不到呢。其实,对象
	数据的确过去了,不过找不到是类定义,这个并不是序列化传过去的,RMI协议是不传递代码的。但是,对于本地没有
	的类文件的对象,RMI提供了一些机制允许接收对象的一方去取回该对象的类代码。而到什么地方去取,这就需要
	发送方设置codebase了。
   <P>二、什么是codebase
   <P>简单说,codebase就是远程装载类的路径。当对象发送者序列化对象时,会在序列化流中附加上codebase的信息。 这个信息告诉接收方到什么地方寻找该对象的执行代码。<P>你要弄清楚哪个设置codebase,而哪个使用codebase。任何程序如果发送一个对方可能没有的新类对象时就要设置codebase(例如jdk的类对象,就不用设置codebase)。   <P>codebase实际上是一个url表,在该url下有接受方需要下载的类文件。如果你不设置codebase,那么你就不能把
   一个对象传递给本地没有该对象类文件的程序。 <P>三、怎样设置codebase
   <P>在大多数情况下,你可以在命令行上通过属性java.rmi.server.codebase来设置codebase。例如,如果你在机
   器url上运行web服务器,端口是8080,你所提供下载的类文件在webserver的根目录下。那么运行应用程序的java
   命令行:
   <pre><code>
     -Djava.rmi.server.codebase=http://url:8080/
   </code></pre>
   <P>这就是告诉任何接受对象的程序,如果本地没有类文件,可以从这个url下载。
  <P> 四、类文件应该在什么地方
  <P> 如上所示,当接收程序试图从url的webserver上下载代码时,它会把对象的包名转化成目录,到相对于codebase
   的该目录下寻找(这点和classpath是一样的)。例如,如果你传递的是类文件yourgroup.project.bean的实例
   ,那么接受方就会到下面的url去下载类文件:
  <pre><code>
     -Djava.rmi.server.codebase=http://url:8080/yourgroup/project/bean.class
   </code></pre>
  <P>一定要保证你把类文件放到webserver根目录下的正确位置,这样这些类文件才能被找到。
  另一方面,如果你把所有的类文件包装成jar文件,那么设置codebase时就要明确的指出这个jar文件。(这又和
  classpath一致了,其实codebase就是网络范围的类路径。)例如你的jar文件是myclasses.jar,那么codebase
  如下:
  <pre><code>
     -Djava.rmi.server.codebase=http://url:8080/myclasses.jar
   </code></pre>
  <P> 你注意这两种形式的不同。用jar文件后面不用跟‘/’,而用路径的一定用跟‘/’。
        </td>
      </tr>
   
    </td>
  </tr>


</div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -