tuscany-sca绑定jms协议

定义接口类


import org.osoa.sca.annotations.Remotable;

@Remotable
public interface HelloWorldService {
    public String getGreetings(String name);
}

接口实现服务

public class HelloWorldServiceImpl implements HelloWorldService {


    @Override
    public String getGreetings(String name) {
        if ("bang".equals(name)) {
            throw new RuntimeException("blem wit");
        }
        System.out.println("send message");
        return "jmsHelloxxx " + name;
    }

}

配置service.composite文件



<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
          targetNamespace="http://www.sunsheen.cn/jfids/demo"
           name="DefaultServiceComposite">

    <component name="HelloWorldService">
        <implementation.java class="test.chart.jms.HelloWorldServiceImpl"/>
        <service name="HelloWorldService">
           <binding.jms initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
                             jndiURL="tcp://localhost:61616">
                <destination name="RequestQueue" create="ifnotexist"/>
                <response>
                    <destination name="ResponseQueue" create="ifnotexist"/>
                response> 
            binding.jms>
        service> 
    component>       

composite>
在建立引用服务实现类

import org.osoa.sca.annotations.Service;

/**
 * This class implements the HelloWorld service.
 */
@Service(HelloWorldService.class)
public class HelloWorldClientImpl implements HelloWorldService {

HelloWorldService helloWorldService;

public String getGreetings(String name) {
System.out.println("Called getGreetings");
return helloWorldService.getGreetings(name);
}

public HelloWorldService getHelloWorldService() {
System.out.println("Got Injected helloWorldService");
return helloWorldService;
}

public void setHelloWorldService(HelloWorldService helloWorldService) {
System.out.println("Injected helloWorldService");
this.helloWorldService = helloWorldService;
}

}

建立引用的composite配

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://www.sunsheen.cn/jfids/system"
name="helloworldjmsreference">

    
    <component name="HelloWorld">
      <implementation.java class="test.chart.jms.HelloWorldClientImpl"/>
      <reference name="helloWorldService">
          <interface.java interface="test.chart.jms.HelloWorldService"/>
          <binding.jms initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory" jndiURL="tcp://localhost:61616">
       <destination name="RequestQueue"/>
              <response>
                  <destination name="ResponseQueue"/>
              response>
        binding.jms>  
      reference>
    component>

composite>
在总配置下sca-contribution.xml,发布service与ref两个配置文件



“`
执行jms外部绑定需要启动activemq,详细了解下activemq的安装教程,启动服务器,没有保存,web端的tuscany sca jms协议绑定接成功了。

你可能感兴趣的:(tuscany,sca,tuscany-sc)