我正在尝试使用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服务的代码?
由于 毗
答案 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