【仅供内部供应商使用,不提供对外解答和培训】
...
当插件依赖的类型为资源文件或者服务文件是,用户在更新插件或者下载插件时,会默认将依
赖同插件一起下载。
5、插件依赖配置说明:
添加依赖的方法是在插件配置文件的dependence属性中添加依赖节点DependenceUnit 添加依赖的方法是在插件配置文件的dependence属性中添加依赖节点Item,节点的
属性为依赖的标志号dependenceID、依赖的类型dependenceType、依赖的安装地址dependenceDir,
属性为依赖的标志号key、依赖的类型type、依赖的安装地址location,
如果插件的类型为service时,可设置启动服务的处理类class如果插件的类型为service时,可设置启动服务的处理类class,
6、插件配置示例:
| Code Block | ||
|---|---|---|
| ||
<dependence>
<DependenceUnit dependenceID<Item key="plugin.geojson" dependenceTypetype="file" dependenceDirlocation="/resources/geojson"/>
<DependenceUnit dependenceID<Item key="plugin.phantomjs" dependenceTypetype="service" dependenceDirlocation="/resources/phantomjs" class="com.fr.plugin.chart.export.pool.ServerObjectFactoryInterface"/>
</dependence> |
7、插件依赖类型为服务时的使用方法:
a:管理
所有的服务都在服务管理器中进行管理,插件启动时,会启动插件中定义好的具体服务,并加入
到管理器中统一管理,每个服务都有一个独特的ID
b:接口说明
使用服务时,调用服务的fetchServiceData方法,传入请求携带的数据。设计器会检测是本地环境
还是远程环境,如果是本地环境,会调用服务的localServiceAction方法,如果是远程环境,则会调用
服务的remoteServiceAction方法。方法的具体实现由具体的服务实现。接口如下:
| Code Block | ||||
|---|---|---|---|---|
| ||||
public interface PluginServiceCreator{
public void startService();
public void destroyService();
public String localServiceAction(String req) throws Exception;
public String remoteServiceAction(String req) throws Exception;
public String fetchServiceData(String req);
} |
c:使用方法
具体服务时,只需要继承已经写好的抽象类PluginService,实现其中的本地方法,以及返回一个自定义
服务的ID,即可支持本地和远程服务。具体服务类实现方法如下:
| Code Block | ||||
|---|---|---|---|---|
| ||||
import com.fr.dependservice.PluginService;
public class MyService extends PluginService {
@Override
public void startService() {
//自定义启动服务代码
}
@Override
public void destroyService() {
//自定义销毁服务代码
}
@Override
public String localServiceAction(String req) throws Exception {
//本地服务处理方法
return null;
}
@Override
protected String getServiceID() {
//自定义服务ID
return null;
}
}
|
8、可能存在的问题
当两台主机相互远程时,可能会有问题