定义接口类
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文件
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
-->
<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配<?xml version="1.0" encoding="UTF-8"?>
<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://www.sunsheen.cn/jfids/system"
name="helloworldjmsreference">
<!-- A component with a reference promoted as a composite reference -->
<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协议绑定接成功了。