您的位置:首页 > 其它

Tuscany SCA 发布Web Service

2011-04-14 21:14 183 查看
有段时间没有学习SOA了,最近偶然碰到一个例子,运行修改理解后发布到此。

在前面的博客中有提到用axis2发布web service,借用了插件,并且步骤较繁多,现在来看下tuscany简单地通过配置文件来发布web service。(工具eclipse 3.5)

1. 新建动态web项目,指定classpath编译后的存储路径为WebContent/WEB—INF/classes。(可右键项目,属性,Java Build Path,Source修改)将Tuscany的jar包都复制到webContent/Web-INF/lib下(此处使用的Tuscany 1.6,最新版本是2.0以上,不要提醒我说有些jar包不是必须的...都加进去也不多,省的到处提示你报错)。

2. 新建接口、实现类等。

User实体类

package tuscany.webService.service;
import java.util.List;
import org.osoa.sca.annotations.Remotable;
//测试发现是必须的
@Remotable
public interface IUserservice {
List<User> getAll();
}


IUserservice接口实现类-UserServiceImpl.java

<?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="UserComposite"
targetNamespace="http://test.tuscany.webService">
<!--composite元素中name为该构件的名,在sca-contribution部署composite时被使用
此处的targetNamespace与sca-contribution中的targetNamespace必须相同  -->
<!--组件,实现了服务UserService-->
<component name="UserServiceImpl">
<implementation.java class="tuscany.webService.service.UserServiceImpl"></implementation.java>
</component>

<!--对外提供的服务-->
<service name="UserService" promote="UserServiceImpl">
<interface.java interface="tuscany.webService.service.IUserservice" />
<!--定义了发布服务绑定的协议,使用webservice-->
<binding.ws></binding.ws>
</service>
</composite>


补充:也可以在src下新建一文件夹或者包用于存放.composite文件,前提就是需要保证编译后的文件会被放到WEB-INF/classes下面元素composite中的name为构件名

3.2 部署文件(sca-contribution.xml),放在WebContent/META-INF下。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>TuscanyWebService</display-name>
<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>
</web-app>


将应用发布到应用服务器上,输入http://localhost:8080/TuscanyWebService/UserService?wsdl,即可看到服务UserService的WSDL描述文件,表示web服务发布成功,可以外部调用。(本例是使用的应用服务器为tomcat6.0)。应用发布可以打包成war包放到tomcat/webapps下,启动startup.bat。在eclipse中,直接右键项目,run as, run on server。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: