0

我想在 52 north 之前开发一个 wps 进程,我应该使用org.n52.wps.server.AbstractSelfDescribingAlgorithm所以这个类继承自net.opengis.wps.x100.ProcessDescriptionType. 我的问题是哪个 jar 文件包含这种类型,请告诉我下载这个 jar 文件的 url?!我的代码是:

package www.gise.cse.iitb.ac.in;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.n52.wps.io.data.IData;
import org.n52.wps.io.data.binding.literal.LiteralDoubleBinding;
import org.n52.wps.server.AbstractSelfDescribingAlgorithm;

public class AddNumbersAlgo extends org.n52.wps.server.AbstractSelfDescribingAlgorithm {

@Override
public Class getInputDataType(String arg0) {
    // TODO Auto-generated method stub
    if (arg0.equals("Num1")){
        //return GTVectorDataBinding.class;
        return LiteralDoubleBinding.class;
    }
    if (arg0.equals("Num2")){
        //return GTVectorDataBinding.class;
        return LiteralDoubleBinding.class;
    }
    throw new RuntimeException("Error: WrongIdentifier");
}

@Override
public Class getOutputDataType(String arg0) {
    // TODO Auto-generated method stub
    if(arg0.equals("AdditionResult")){
        return LiteralDoubleBinding.class;
    }
    throw new RuntimeException("Error: Wrong identifier");
}
@Override
public Map<String, IData> run(Map<String, List<IData>> arg0) {

    if (arg0 == null || !arg0.containsKey("Num1")){
        throw new RuntimeException("Error: While allocating Input Parameters");
    }
    if (arg0 == null || !arg0.containsKey("Num2")){
        throw new RuntimeException("Error: While allocating Input Parameters");
    }
    List<IData> datalist = arg0.get("Num1");
    if(datalist == null || datalist.size()!=1){
        throw new RuntimeException("Error:While allocating Input Parameters");
    }

    //Checking for correctness of input
    List<IData> datalist1 = arg0.get("Num2");
    if(datalist1 == null || datalist1.size()!=1){
        throw new RuntimeException("Error:While allocating Input Parameters");
    }
    //Extracting input
            IData Num1 = datalist.get(0);
            double firstNum = ((LiteralDoubleBinding)Num1).getPayload();
            System.out.println(Num1);
            System.out.println(firstNum);

            IData Num2 = datalist1.get(0);
            double secondNum = ((LiteralDoubleBinding)Num2).getPayload();
            System.out.println(Num2);
            System.out.println(secondNum);

            double Result = firstNum + secondNum;
            //double AdditionResult;
            //create the response. In this case a GenericFileDataBinding is used (see this.getOutputDataType(...)
            IData AdditionResult = new LiteralDoubleBinding(Result);

            //new Map created
            Map<String, IData> resultMap = new HashMap<String, IData>();
            //created response added to corresponding identifier (see this.getOutputIdentifiers())
            resultMap.put("AdditionResult", AdditionResult);

            return resultMap;
}

@Override
public List<String> getInputIdentifiers() {
    // TODO Auto-generated method stub
    List<String> identifiers = new ArrayList<String>();
    identifiers.add("Num1");
    identifiers.add("Num2");
    return identifiers;
}

@Override
public List<String> getOutputIdentifiers() {
    // TODO Auto-generated method stub
    List<String> identifiers = new ArrayList<String>();
    identifiers.add("AdditionResult");
    return identifiers;
}

错误是:

此行有多个标记

  • net.opengis.wps.x100.ProcessDescriptionType无法解析类型。它是从所需的 .class 文件中间接引用的

  • net.opengis.wps.x100.ProcessDescriptionType无法解析类型。它是从所需的 .class 文件中间接引用的

4

2 回答 2

2

I would recommend using a maven-managed project. All required artifacts to create such a project are on the public 52north maven repository (including the XML bindings library you mentioned). The following pom.xml should serve well as a project skeleton. It already has the aforementioned maven repository included.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>my.test.wps-project</groupId>
    <artifactId>wps</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.n52.wps</groupId>
            <artifactId>52n-wps-io</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.n52.wps</groupId>
            <artifactId>52n-wps-algorithm</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>n52-releases</id>
            <name>n52-releases</name>
            <url>http://52north.org/maven/repo/releases/</url>
        </repository>
    </repositories>
</project>

In general, artifacts of a maven-managed open source project should be accessible on a dedicated or central repository. Otherwise the projects build setup would not be satisfied. So, a general advice would be to first do some investigation on the project structure.

于 2013-04-18T07:36:14.960 回答
1

很难找到任何包含您正在搜索的内容的罐子。

我找到了一个包含文件的 subversion 存储库。所以我

现在你有了 jar 文件:

target/wps-1.0.0.jar

您必须自己构建它并不是最佳选择,但它可以解决问题。

您的代码也可能依赖于其他 jar 文件,但我猜它们在同一个 repo 中。

于 2013-04-17T15:22:50.547 回答