智慧城市栅格操作系统-服务封装说明书V1.2.12083

3.2.2.1[4]


选择资源属性的信息提供者以及查询方式,点击Finish,如图3.2.2.1[5]

3.2.2.1[5]

至此,一个网格服务工程创建完毕。在Eclipse的各个工作区显示如图3.2.2.1[6]所示。

3.2.2.1[6]

3.2.2    编写服务定义文件

在此部分中,主要是对要封装为服务的资源属性以及各种操作进行定义,并指明了收集资源属性信息的聚集源类型等相关信息。其具体过程是在文件Database.java中实现的,大致内容如下所示:

package org.globus.grid.database;

 

import de.fb12.gdt.GridService;

import de.fb12.gdt.GridAttribute;

import de.fb12.gdt.GridMethod;

 

import com.kuiyi.examples.database.*;

 

@GridService (name = “Database”, namespace = “http://globus.org/grid/Database”, targetPackage = “org.globus.grid.database”, serviceStyle = “SSTYLE_SIMPLE”, resourceStyle = “RSTYLE_GLOBUS”, operationProvider = “GetRPProvider, GetMRPProvider, QueryRPProvider”, loadOnStartup = true, filePersistentResource = false, hotLoadable = false, securityDesc = “[]”, clientSecurityDesc = “[]”, resourceSecurityDesc = “[]”)

public
class Database {

    

    @GridAttribute(mds_agg_type=“Query”,mds_renew=“300”,mds_term_time=“2008-08-08T00:00:00”,mds_query_type=“GetMultipleResourceProperties”,mds_query_poll=“100000”) private String ResourceType; //源的属性

 

    public String getResourceType() { //属性的set()和get()方法

        return
ResourceType;

    }

    public
void setResourceType(String resourceType) {

        ResourceType = resourceType;

    }

    @GridMethod
public String[] findexpfrommaterial(String type){ //
外接口1

        String[] result = null;

        DataSearch q = new DataSearch(); //引用业务逻辑

        result = q.SearchExpFromMaterial(type);

        return result;

    }

    @GridMethod
public String[] findexpfromsc(String type, String dimension){ //
外接口2

        String[] result = null;

        DataSearch q = new DataSearch(); //引用业务逻辑

        result = q.SearchExpFromSC(type, dimension);

        return result;

    }

    @GridMethod
public String[] findexpfromscandmaterial(String materialtype, String sctype, String scdimension){ //
外接口3

        String[] result = null;

        DataSearch q = new DataSearch(); //引用业务逻辑

        result = q.SearchExpFromSCAndMaterial(materialtype, sctype, scdimension);

        return result;

    }

}

Database.java中可以只定义变量(资源属性)和方法(对外接口),具体的业务逻辑可以在生成的服务代码中添加。

编辑完Database.java文件后,点击保存按钮。保存成功后,GDT会自动根据编写的java文件生成服务代码、wsdl文件以及各种配置文件。在Eclipse的左侧工作区DatabaseService工程的目录如图3.2.2.2所示:

3.2.2.2 工程目录

3.3    资源属性初始化及对外接口实现

在此部分,要做的工作有两项:一方面是在网格服务的资源文件DatabaseResource.java中初始化上一部分所定义属性;另一方面是在网格服务文件DatabaseService.java中实现了对外接口。

首先,对所定义属性的初始化方法如下所示:

/**

     *

     *
@modifiablegenerated

     */

    public
void initialize()

    {

        this.propSet = new SimpleResourcePropertySet(RESOURCE_PROPERTIES);

        try {

     ResourceTypeRP = new SimpleResourceProperty(RP_RESOURCETYPE);

     this.ResourceTypeRP.add(new Object());

         this.propSet.add(ResourceTypeRP);

        } catch (Exception e) {

         throw
new RuntimeException(e.getMessage());

        }

        // begin-user-code

     this.setResourceType(“DatabaseResource”); //将属性ResourceType初始化DatabaseResource

        // end-user-code

    }

其次,对外接口的实现方法如下所示:

/**

     *

     *
@modifiablegenerated

     */

    public FindexpfrommaterialResponse findexpfrommaterial(Findexpfrommaterial complexType) throws RemoteException {        

        FindexpfrommaterialResponse response = new FindexpfrommaterialResponse();

 

        // begin-user-code

        String[] result = null; //外接口1的初始化

        DataSearch q = new DataSearch();

        result = q.SearchExpFromMaterial(complexType.getType());

        response.setFindexpfrommaterialReturn(result);

        // end-user-code

        return response;        

    }

 

/**

     *

     *
@modifiablegenerated

     */

    public FindexpfromscResponse findexpfromsc(Findexpfromsc complexType) throws RemoteException {        

        FindexpfromscResponse response = new FindexpfromscResponse();

 

        // begin-user-code

        String[] result = null; //外接口2的初始化

        DataSearch q = new DataSearch();

        result = q.SearchExpFromSC(complexType.getType(), complexType.getDimension());

        response.setFindexpfromscReturn(result);

        // end-user-code

        return response;        

    }

    

/**

     *

     *
@modifiablegenerated

     */

    public FindexpfromscandmaterialResponse findexpfromscandmaterial(Findexpfromscandmaterial complexType) throws RemoteException {        

        FindexpfromscandmaterialResponse response = new FindexpfromscandmaterialResponse();

 

        // begin-user-code

        String[] result = null; //外接口3的初始化

        DataSearch q = new DataSearch();

        result = q.SearchExpFromSCAndMaterial(complexType.getMaterialtype(), complexType.getSctype(), complexType.getScdimension());

        response.setFindexpfromscandmaterialReturn(result);

        // end-user-code

        return response;        

    }

3.4    编译生成存根类及gar包

以上所有的操作都完成后,可以说网格服务已经开发完成了。接下来,还需要将生成把DatabaseService服务部署到GT4容器中去所需要的gar包。具体过程如下:

1、点击图标,编译生成存根类。在Console工作区显示如下结果时,表示编译成功。

此时,在Eclipse左侧的区域此项目的目录如图3.2.4[1]所示:

3.2.4[1] 工程目录

2、点击图标,生成部署时需要用的gar包。在Console工作区显示如

以下文章点击率最高

Loading…


发表评论

电子邮件地址不会被公开。 必填项已用*标注