基于SCA(tuscany)的SOA实践之一(发布服务是如此的简单)

本文讲述基于SCA(tuscany)的SOA实践,第一篇将服务发布,tuscany支持N多协议,这里主要是针对webservice
先说一下开发环境jdk6+eclipse3.4+wst+stp+tuscany1.3.1
1   建立一个动态web工程tuscanytest,源文件目录是src/main/java,资源文件目录是src/main/resources,web目录是src/main/webapp,把tuscany的jar复制到src/main/webapp/WEB-INF/lib/目录下
2   接口,sca中接口可以有java和wsdl2种方法,本例使用java
    定义接口 IUserservice,代码如下
package com.tuscanytest.service;

import java.util.List;

import org.osoa.sca.annotations.Remotable;

@Remotable
public interface IUserservice {
//如果服务是分布式的,就需要使用@Remotable声明
    List<User> getAll();
}
3 定义User和Address类,都是简单的pojo对象,代码如下
User类
package com.tuscanytest.service;

public class User {

    private String id;
    private String name;
    private String password;
    private Address address;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

}
Address类
package com.tuscanytest.service;

public class Address {

    private String street;

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

}   
4 定义IUserservice的UserServiceImpl实现类,这里只是简单的从内存中获得模拟数据,代码如下
package com.tuscanytest.service;

import java.util.ArrayList;
import java.util.List;

public class UserServiceImpl implements IUserservice {

    private static List<User> users = null;
    static {
        users = new ArrayList<User>();
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setId("id" + i);
            user.setName("name" + i);
            user.setPassword("password" + i);
            Address address = new Address();
            address.setStreet("street" + i);
            user.setAddress(address);
            users.add(user);
        }
    }

    public List<User> getAll() {
        return users;
    }

}

5 在src/main/resources/下定义default.composite文件,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
    xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" name="tuscanytest"
    targetNamespace="http://serivce.tuscanytest.com">
    <component name="UserServiceImpl">
        <implementation.java class="com.tuscanytest.service.UserServiceImpl"></implementation.java>
    </component>
    <service name="UserService" promote="UserServiceImpl">
        <interface.java interface="com.tuscanytest.service.IUserservice" />
        <binding.ws></binding.ws>
        <!--定义了发布服务绑定的协议,使用webservice,还有其他多种协议绑定,可参考tuscany文档-->
    </service>
</composite>
文件最终部署到webapp/WEB-INF/classes/目录下即可

6 定义sca-contribution.xml,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
              targetNamespace="http://serivce.tuscanytest.com"
              xmlns:tuscanytest="http://serivce.tuscanytest.com">
   <deployable composite="tuscanytest:tuscanytest"/>
</contribution>
文件最终部署到webapp/META-INF/目录下即可

7 修改webapp/WEB-INF/web.xml文件,添加如下的filter
    <filter>
        <filter-name>tuscany</filter-name>
        <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>tuscany</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

8 然后启动部署到web服务器上,访问地址http://localhost:9080/tuscanytest/UserService?wsdl,就可以看到wsdl服务描述文件

看你只需要增加一行配置,一个普通的java类就变成了web服务了
比起axis2的复杂来说,发布服务是如此的简单

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于基于FPGA的SCA3100传感器设计,我可以提供一些基本的指导。SCA3100是一款三轴加速度传感器,它可以通过FPGA进行数据采集和处理。 首先,你需要选择一个合适的FPGA开发板,比如Xilinx或Altera的开发板。确保该开发板有足够的资源和接口来支持SCA3100传感器的连接和数据处理。 接下来,你需要了解SCA3100传感器的通信接口和寄存器配置。SCA3100可以通过I2C或SPI接口与FPGA通信。在设计过程中,你需要使用FPGA的IO资源来连接传感器,并实现I2C或SPI协议来读取和写入传感器的寄存器。 一旦完成了与传感器的通信接口,你需要编写FPGA的逻辑代码来控制传感器并获取数据。这包括配置传感器的寄存器以选择采样率、量程和其他参数,以及读取传感器的测量值。 你还可以使用FPGA的硬件加速功能来处理传感器数据,例如进行滤波、傅里叶变换或其他信号处理算法。这些算法可以通过使用FPGA上的DSP块或硬件描述语言(如Verilog或VHDL)来实现。 最后,你可以将传感器数据通过FPGA的输出接口发送到其他设备或系统进行进一步的处理和分析,比如通过UART、以太网或存储器接口。 需要注意的是,基于FPGA的传感器设计需要具备一定的硬件设计和编程知识。如果你对FPGA和传感器接口不太熟悉,建议先学习相关的基础知识或寻求专业人士的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baitianhai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值