发表于: 2017-04-04 01:46:38

7 1498


今天完成的事情:今天终于搞定了,找不到类的问题居然只要在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吧。


返回列表 返回列表
评论

    分享到