发表于: 2017-04-04 01:46:38
7 1500
今天完成的事情:今天终于搞定了,找不到类的问题居然只要在spring配置里面bean的属性里面加上name而不是id,这个问题真的是难找,我翻警告日志才发现一条sca:Service的target属性指定的bean不存在,<beans> 内必须存在有@name属性为@target 的<bean>。然后就这么好了。把web段部署到虚拟机两个tomcat上,Service一个虚拟机一个远程服务器。nginx用之前的配置,实测没问题,基本完成任务九。另外想试着把tuscany改成和spring3.2一起用,实验后发现需要修改tuscany-implementation-spring-runtime里面的一个scaApplication类,3.1以i后的spring版本的Application接口多了一个getEnviroment方法,而这个类实现了这个接口,但没有实现这个方法。暂时不会改源码,以后再说吧。
配置tuscany+tuscany发布rmi服务具体步骤
1,假如需要和spring一起用,请检查spring版本,tuscany2.0只支持spring3.1以下,tuscany默认3.0.5,
2,引入jar包
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-base-runtime</artifactId>
<version>2.0.1</version>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-implementation-spring-runtime</artifactId>
<version>2.0.1</version>
<groupId> org.apache.tuscany.sca</groupId >
<artifactId>tuscany-binding-rmi-runtime</artifactId>
<version> 2.0.1</version>
<scope> runtime</scope>
三个jar包,
3.配置composite文件,文件需要放置在源文件夹下
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="StuService" targetNamespace="http://StuService">
<component name="StuComponent">
<implementation.spring location="./spring/spring-tuscany.xml"/>
<service name="StuService" >
<tuscany:binding.rmi uri="rmi://127.0.0.1:8088/StuService"/>
</service>
</component>
其中service的name需要和接下来的spring配置文件sca:servcie 的id相同
4配置spring文件 基础配置
<?xml version= "1.0" encoding ="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sca="http://www.springframework.org/schema/sca"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/sca
http://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd" >
<sca:service name="StuService" type="com.pt.service.StuService" target="StuService"/>
<bean id="StuService" name="StuServcie" class="com.pt.service.impl.StuServiceImpl"/>
<import resource="spring-dao.xml"/>
其中type对应的是服务类的接口,target对应下面的bean的name属性,不是id,class是服务的实现类。另外需要import其他的所有的spring配置文件。
5最后修改web.xml文件,之前配置的spring的contextloaderListener可以删除,添加tuscany的过滤器
<filter>
<filter-name>tuscany.myws</filter-name>
<filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>tuscany.myws</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
现在即配置完成,客户端按之前的调用方式调用即可,无需改动。
明天计划的事情:任务七没做所以之后的任务都没法提交,明天找群里 问一下接下来怎么做,是把任务七补了都提交了还是怎么做。
遇到的问题:没想到居然是name属性,看来以后要多看看日志,关注里面的warning级别的日志。现在不会修改jar包源码,明天可以查查。
收获:终于算学会了配置tuscany吧。
评论