王洪伟的专栏

http://blog.teamlet.org

用户操作
[即时聊天] [发私信] [加为好友]
王洪伟ID:teamlet
169628次访问,排名450好友1人,关注者59
10年软件开发设计经验,专注J2EE领域的技术架构和应用.
teamlet的文章
原创 100 篇
翻译 9 篇
转载 67 篇
评论 146 篇
teamlet的公告

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.

关注SOA技术的发展,跟进SCA技术的理论和实现,努力实践。愿与同行者一起分享,互相勉励,共同进步。
最近评论
myself:<configuration>
<source>1.5</source>
<target>1.5</target>
<maxmem>256M</maxmem>
<encoding>UTF-8</encoding>
<……
zhi:您好!!
能不能给我也发一份源码过来!谢谢
zhi@tuanke.net
lai:2008-9-4 13:52:56 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has alread……
lai:2008-9-4 13:52:56 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has alread……
lai:2008-9-4 13:52:55 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet AxisServlet threw exception
java.lang.NullPointerException
at org.apache.axi……
文章分类
收藏
    相册
    资源联接
    Apache Tuscany
    Cruise Control
    Open CSA
    OSOA
    SOA Tools Project
    Theserverside
    中国Java开发网
    满江红
    知识共享@中国大陆
    左邻右舍
    donews的blog
    msn的blog
    Tuscany中文社区
    我用Subversion
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 equinox实现Class Loader机制的代码解读(3)收藏

    新一篇: IEEE标准的种类以及软件工程包含的标准 | 旧一篇: equinox实现Class Loader机制的代码解读(2)

    在团队开发过程中,不可避免的会出现这样的情况:在bundle内部声明了一个Package的同时,又从外部Import进来相同的Package,这会导致什么情况发生呢?

    来做个小实验。

    1、创建两个plug-in的项目。

    A、创建第一个插件项目


    B、同样创建第二个插件项目

    2、在每个项目里面除了不同的包,还要都声明一个相同的包名。
    在相同的包名里面创建相同名称的类,如下图所示。

     3、编写代码

    A、第一个SameClass.java代码

    package org.teamlet.samepackage;

    public class SameClass {
       
    public void toShow(){
           System.out.println(
    "*** I am inside !");
       }
    }


    B、第二个SameClass.java代码

    package org.teamlet.samepackage;

    public class SameClass {
       
    public void toShow(){
           System.out.println(
    "*** I am outside!");
       }
    }

     

    4、导出导入包

    在第一个项目 equinox.evn.test.samepackage (包含"I am outside"内容)的 Manifest.MF文件中加入导出:

    Export-Package: org.teamlet.samepackage

    在第二个项目 org.teamlet.osgi.test (包含 "I am inside"内容)的 Manifest.MF文件中加入导入:

    Import-Package: org.osgi.framework;version="1.3.0",
     org.teamlet.samepackage

    5、增加调用

    在第二个项目 org.teamlet.osgi.test  的Activator 中的 start()方法调用SameClass

     public void start(BundleContext context) throws Exception {
         SameClass sc 
    = new SameClass();
         sc.toShow();
     }

    6、执行

    7、结论

    如果bundle引入了一个和内部相同的包,那么使用的将是引入的包,而不是内部的包。

    从《equinox实现Class Loader机制的代码解读(1)》中的class查找顺序可以看得很清楚。

    发表于 @ 2008年03月16日 22:12:00|评论(loading...)|编辑

    新一篇: IEEE标准的种类以及软件工程包含的标准 | 旧一篇: equinox实现Class Loader机制的代码解读(2)

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © teamlet