王洪伟的专栏

http://blog.teamlet.org 本站搜索关键字:王洪伟+teamlet

王洪伟ID:teamlet
154427次访问,排名448(-1)好友1人,关注者39
10年软件开发设计经验,专注J2EE领域的技术架构和应用.
teamlet的文章
原创 95 篇
翻译 9 篇
转载 67 篇
评论 134 篇
teamlet的公告

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

关注SOA技术的发展,跟进SCA技术的理论和实现,努力实践。愿与同行者一起分享,互相勉励,共同进步。
最近评论
陈森虎:常看王老师的东西,自已不会学,只有顶一下了
lixinso:可以使用代理吧,ultralsurf,很好用
sse:想请教您gforge的安装过程中,按照您 的安装配置过程一步步进行,可是今天来了重启后http.conf 里有个模块加载不上, LoadModule php5_module modules/libphp5.so
LoadModule dav_svn_module modules/mod_dav_svn.so请问好何解决。邮箱是cqupt_wang@hotm……
xaser:GOOGLE一下“Vidalia Bundle”,安装后就能正常访问SF了,也能正常下载文
JAVA:如何下载被封的SourceForge.net上面的源码
http://hi.baidu.com/huqiwen/blog/item/675a3812da9d6b54f819b8de.html
文章分类
收藏
    相册
    资源联接
    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

    原创 使用Eclipse3.2.1+STP.0.4.0+Apache Tuscany开发SCA的Java组件(2)代码篇 收藏

    新一篇: 使用Eclipse3.2.1+STP.0.4.0+Apache Tuscany开发SCA的Java组件(3)运行篇  | 旧一篇: Eclipse SOA项目中的SCA, JAX-WS和Ajax

     

    四、编辑服务端代码 

    1、项目建成后,包含一些文件。
    在src目录下相应包内有:HelloWorld.java、HelloWorldImpl.java和HelloWorldServer.java三个文件;
    在META-INF\sca目录下有default.scdl文件;
    在bin目录下有HelloWorld_sca.jar文件。如图所示:

    2、修改HelloWorld.java文件
    原文件为:

    package org.eclipse.stp.test;

    import org.osoa.sca.annotations.Remotable;
    import org.osoa.sca.annotations.Service;

    @Service()
    @Remotable()
    public interface HelloWorld {
    }

    修改为:

    package org.eclipse.stp.test;

    import org.osoa.sca.annotations.Remotable;
    import org.osoa.sca.annotations.Service;

    @Service()
    @Remotable()
    public interface HelloWorld {
            
    public void sayHello(String value);
    }

     

    3、修改HelloWorldImpl.java文件
    第一步、增加sayHello()方法

    原文件为:

    package org.eclipse.stp.test;

    import org.osoa.sca.annotations.Service;
    import org.osoa.sca.annotations.OneWay;

    @Service(org.eclipse.stp.test.HelloWorld.
    class)
    public class HelloWorldImpl implements HelloWorld {
    }

    修改为:(*注意:并没有完全修改完毕,这里只是手工添加了一个方法)

    package org.eclipse.stp.test;

    import org.osoa.sca.annotations.Service;
    import org.osoa.sca.annotations.Session;

    @Session()
    @Service(org.eclipse.stp.test.HelloWorld.
    class)
    public class HelloWorldImpl implements HelloWorld {
               
    public void sayHello(String value){
                       System.out.println(
    "Hello "+ value);
               }
    }


    第二步、利用工具为sayHello方法添加注释 Annotation
    选中HelloWorldImpl.java中的sayHello方法名称,在Annotation view中会显示如图的信息将红色的OneWay设置成true。
    图(1)选中方法。(下图)

    图(2)设置OneWay值为true。(下图)

    图(3)代码同步完成注释添加。(下图)

    第三步、利用工具为HelloWorldImpl类添加注释 Annotation

    选中HelloWorldImpl名,如图示:

    最后,代码修改完毕,如下:

    package org.eclipse.stp.test;

    import org.osoa.sca.annotations.Service;
    import org.osoa.sca.annotations.OneWay;
    import org.osoa.sca.annotations.Session;

    @Session(maxIdleTime
    ="30")
    @Service(org.eclipse.stp.test.HelloWorld.
    class)
    public class HelloWorldImpl implements HelloWorld {
        @OneWay()
        
    public void sayHello(String value){
            System.out.println(
    "Hello "+ value);
        }
    }

     

    五、创建客户端代码

    第一步、新建java project ,选中Java Project,Next

    输入项目名称为:HelloWorldRMIClient,其他保持默认值,Next.
    Java Settings也保持默认值,Finish.

    第二步、创建一个新的Interface。文件如下:

    package org.eclipse.stp.test;

    import java.rmi.Remote;

    public interface HelloWorld extends Remote {
        
    public void sayHello(String value);
    }

     

    第三步、创建一个新的Class。文件如下:

    package org.eclipse.stp.test;

    import java.rmi.Naming;

    public class HelloWorldRMIClient {

           
    public static void main(String[] args) {

             
    try{
               HelloWorld service 
    =(HelloWorld)Naming.lookup("rmi://localhost:1099/HelloWorldRemoteService");
                service.sayHello(
    "Welcome to SOA World !");
            }
    catch(Exception e){
                 e.printStackTrace();
            }
       }

    }
    代码中,HelloWorld是继承了远程接口的本地接口。
    rmi信息参照:default.scdl文件中的rmi:binding.rmi内容,default.scdl内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:rmi="http://incubator.apache.org/tuscany/xmlns/binding/rmi/1.0-incubator-M2" name="HelloWorldComposite">
              <component name="HelloWorldComponent">
                     <implementation.java class="org.eclipse.stp.test.HelloWorldImpl"/>
             </component>
             <service name="HelloWorldService">
                     <interface.java interface="org.eclipse.stp.test.HelloWorld"/>
                     <rmi:binding.rmi host="localhost" port="1099" serviceName="HelloWorldRemoteService"/>
                     <reference>HelloWorldComponent</reference>
             </service>
    </composite>

    <待续>

    发表于 @ 2007年03月15日 23:56:00|评论(loading...)|编辑

    评论

    #bjz 发表于2007-06-28 09:40:44  IP: 202.108.130.*
    在java代码里增加annotation后,似乎stp不会根据新的annotation修改default.scdl文件。那么这些annotation在什么时候起作用呢?
    #java_jack 发表于2007-12-26 17:58:56  IP: 218.80.212.*
    请问,安装插件后,新建SCA项目时出错:Could not initialize class org.eclipse.stp.sc.sca.java.ScaJavaResources
    是什么问题?
    谢谢!
    #cxh0714 发表于2008-05-11 15:36:57  IP: 123.152.49.*
    (1)在哪
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © teamlet