我想从app引擎中为Kubernetes使用this java客户端库。但是我遇到了问题,因为此客户端库使用的okhttp
客户端根据此link无法在应用引擎中运行。
上一个SO链接中描述的错误是我在app引擎上遇到的确切错误。
根据此link,okhttp
公开了可以被覆盖的方法,从而无法看到此问题。这个here实际上有一个库。但问题是OkHttpClient
已从版本3.x开始从包com.squareup.okhttp
移至okhttp3
,其中存在我所需的更改。如果我尝试设置新的okhttp,则在Kubernetes客户端库中使用此旧版okhttp
并显示错误。
有什么方法可以解决这个问题吗?或者是否有任何其他客户端库可以从应用程序引擎中使用。我知道来自fabric8的客户端,但截至目前,它只支持kubernetes版本1.7.10。我仍然没有在app引擎上试过它。
编辑:
即使是fabric8客户端在app引擎中也存在同样的问题。它正试图获取ProxySelector
,而import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { INews } from './inews';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class NewsserviceService {
public _url = 'http://localhost/admin/demo/api/get_posts/';
constructor( public http: HttpClient) { }
getNews(): Observable<INews[]> {
return this.http.get<INews[]>(this._url).pipe(map(res => res.json()));
}
}
不是appengine中列入白名单的类。
答案 0 :(得分:2)
或者,您可以尝试使用Java 8运行时,您可以使用所有标准Java库,而Java 7运行时只允许选择列入白名单的JRE类。毕竟,现在不推荐使用Java 7运行时:https://cloud.google.com/appengine/docs/standard/java/runtime
但请注意,存在一些差异,因此您可能需要查看迁移指南:https://cloud.google.com/appengine/docs/standard/java/migrating-to-java8