使用Restlet Odata扩展的安全Web服务的代码生成

时间:2015-01-19 01:46:28

标签: odata restlet restlet-2.0

我正在尝试使用Restlet Odata extesnion为我的安全Web服务创建对象模型(java类)。作为此过程的一部分,我在下面编写代码来生成代码。

import org.restlet.ext.odata.Generator;
import org.restlet.ext.odata.Service;
import org.restlet.data.ChallengeResponse;
import org.restlet.data.ChallengeScheme;

public class ODataRestletGenerator extends Service {

    public ODataRestletGenerator(String serviceUri) {
        super(serviceUri);
    }

    public static final String APPLICATION_URI = "https://api5.successfactors.eu/odata/v2";

    public static void main(String[] args) {

        // Add the client authentication to the call
        ChallengeScheme scheme = ChallengeScheme.HTTP_BASIC;
        ChallengeResponse credentials = new ChallengeResponse(scheme, "user", "pwd");       
        new ODataRestletGenerator(APPLICATION_URI).setauth(credentials);

        String[] arguments = { APPLICATION_URI, "/src/main/java" };
        Generator.main(arguments);
    }

    private void setauth(ChallengeResponse credentials) {

        super.setCredentials(credentials);
    }

}

但org.restlet.ext.odata.Generator类中的以下代码正在清除我传递的凭据,并且总是抛出401未经授权的错误。

Service service = new Service(dataServiceUri);
if(service.getMetadata() == null)
{
  errorMessage = "Cannot retrieve the metadata.";
}

您能否解决此问题并提供支持以生成安全Web服务的代码?

由于 毗

1 个答案:

答案 0 :(得分:0)

我没有回复restlet-as-OData-client,但如果你寻找的是客户端,Apache Olingo可能是一个很好的选择:

它支持最新的ODataV4协议,从EDM模型生成强类型的java类等...

您可能希望查看@ http://olingo.apache.org/doc/odata4/maven.html,并且有一个完整的示例项目,可以生成代码@ https://github.com/Tirasa/olingoClientOnAndroidSample/blob/master/pom.xml