小编Jdr*_*uwe的帖子

Retrofit和OkHttpClient,在失败方法中捕获连接超时

我有以下设置:

final OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setReadTimeout(5, TimeUnit.SECONDS);
okHttpClient.setConnectTimeout(5, TimeUnit.SECONDS);

RestAdapter.Builder builder = new RestAdapter.Builder()
        .setEndpoint(ROOT)
        .setClient(new OkClient(okHttpClient))
        .setLogLevel(RestAdapter.LogLevel.FULL);
Run Code Online (Sandbox Code Playgroud)

我试图处理我的服务器关闭和用户获得连接超时异常的情况,这是我的日志记录:

java.net.SocketTimeoutException: failed to connect to /192.168.0.53 (port 3000) after 5000ms
Run Code Online (Sandbox Code Playgroud)

完整日志记录:http://pastebin.com/gscCGb7x

有没有办法将其转换为改装故障方法,以便我可以在那里处理它?

提前致谢!

android connection-timeout retrofit okhttp

37
推荐指数
4
解决办法
6万
查看次数

有什么用... -v21.xml?

我正在为Android 4.0及更高版本开发一个应用程序.我刚刚更新到appcompat 22.2.0,但我在网上看到所有这些对...- v21/v22.xml的引用.它们用于什么?他们有所作为吗?提前致谢!

android android-appcompat

32
推荐指数
1
解决办法
2万
查看次数

Mongoose findOneAndUpdate和runValidators无法正常工作

我在尝试使用'runValidators'选项时遇到问题.我的用户架构有一个必须设置为true的电子邮件字段,但每次将新用户添加到数据库(使用'upsert'选项)并且电子邮件字段为空时它不会抱怨:

 var userSchema = new mongoose.Schema({
   facebookId: {type: Number, required: true},
   activated: {type: Boolean, required: true, default: false},
   email: {type: String, required: true}
});
Run Code Online (Sandbox Code Playgroud)

findOneAndUpdate 码:

model.user.user.findOneAndUpdate(
      {facebookId: request.params.facebookId},
      {
          $setOnInsert: {
              facebookId: request.params.facebookId,
              email: request.payload.email,
          }
      },
      {upsert: true, 
       new: true, 
       runValidators: true, 
       setDefaultsOnInsert: true
      }, function (err, user) {
          if (err) {
              console.log(err);
              return reply(boom.badRequest(authError));
          }
          return reply(user);
      });
Run Code Online (Sandbox Code Playgroud)

我不知道我做错了什么,我只是按照文档:http://mongoosejs.com/docs/validation.html

在文档中说如下:

请注意,在mongoose 4.x中,更新验证程序仅在$ set和$ unset操作上运行.例如,无论number的值如何,以下更新都将成功.

我用$ set替换了$ setOnInsert,但结果相同.

validation mongoose mongodb node.js

25
推荐指数
3
解决办法
3269
查看次数

AngularJS插值误差

我正在显示房间的属性作为我正在处理的房间管理应用程序的一部分,这是输出:

在此输入图像描述

正如你所看到的,Beamer(投影仪的英文版)的价值是"Sony(lamp 01/12/2013)".这个输出是正确的但是当我打开我的控制台时,我看到一些关于插值的错误:

在此输入图像描述

分辨率更高:

在此输入图像描述

"Can't interpolate: {{getBeamerString()}} TypeError: Cannot read property 'aanwezig' of undefined"
Run Code Online (Sandbox Code Playgroud)

这是我的html部分:

<section class="eigenschappen">
    <table class="table table-striped table-hover table-bordered">
        <thead>
        <tr>
            <th>Eigenschap</th>
            <th>Waarde</th>
            <th>Bewerk</th>
        </tr>
        </thead>
        <tbody>

        ...

        <tr>
            <td><img class="ruimteNaam" src="../Images/Beamer.png" alt=""/>Beamer</td>
            <td>{{getBeamerString()}}</td>
            <td><img class="edit" src="../Images/Edit.png" alt=""/></td>
        </tr>

        ...

        </tbody>
    </table>
</section>
Run Code Online (Sandbox Code Playgroud)

currentRuimte(CurrentRoom in English)是一个范围定义变量,它使用从我的mongoDB获取该数据的资源服务获取其值:

function RuimteController($scope, $routeParams, Ruimte) {

    $scope.currentRuimte = Ruimte.get({
        ruimteNaam: $routeParams.ruimteNaam
    });

    $scope.getBeamerString = function () {
        var beamer = $scope.currentRuimte.beamer;
        if(beamer.aanwezig == 'Ja'){
            return beamer.typeBeamer + ' (lamp: ' + beamer.datumLamp …
Run Code Online (Sandbox Code Playgroud)

angularjs

23
推荐指数
1
解决办法
3万
查看次数

使用ngFor的角度flex-layout

我是flex-layout的新手,无法修复以下内容:

https://github.com/angular/flex-layout

我的ngFor:

<div fxLayout.xs="column">
 <country fxFlex *ngFor="let country of countries" [country]="country"></country>
</div>
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

如果我只想连续3个国家,换句话说,如果我想让最后一个'德国'成为下一行怎么办?

这只能通过创建多个fxLayout来实现吗?我指的是2个循环,1表示创建fxLayout的数量,另一个内循环表示我的国家组件(fxFlex项目).提前致谢!

css flexbox typescript angular

10
推荐指数
2
解决办法
6588
查看次数

Android全屏对话框回调问题

我无法绕过某些东西,但让我先描述一下我的设置:

流

我有一个引用3个片段的活动,每个片段都会在正确的时间显示出来.这就是ChildrenSpecificationFragment的外观:

如果用户单击浮动操作按钮,则会打开以下DialogFragment:

我在新的材料设计指南中找到了以下信息:https://www.google.com/design/spec/components/dialogs.html#dialogs-full-screen-dialogs

避免使用以下对话框:在对话框中打开其他对话框.包含滚动内容,尤其是警报.相反,请考虑针对阅读或与大量内容进行交互而优化的备用容器或布局.

例外情况包括:全屏对话框可能会打开其他对话框,例如拣货员,因为它们的设计可以容纳额外的材料层,而不会显着增加应用程序感知的z深度或视觉噪音.

这是我的问题开始的地方."添加子项"对话框具有可滚动内容(在横向模式下),当用户单击"出生日期"时,日期选择器将打开.

我试图找到一种方法来实现一个全屏对话框(如准则中),该对话框具有对ChildrenSpecificationFragment的回调,以便我可以将子项添加到RecyclerView.

我希望我的探索是明确的,并且非常感谢能够引导我找到解决方案的任何意见.提前致谢!

android android-fragments android-dialogfragment

9
推荐指数
1
解决办法
6730
查看次数

Docker maven插件ClientProtocolException(使用Docker Toolbox的Windows 10)

我正在尝试使用docker-maven-plugin(由spotify提供:https://github.com/spotify/docker-maven-plugin)来构建一个docker镜像,但事情并没有真正解决.起初我得到了这个例外:

org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375
Run Code Online (Sandbox Code Playgroud)

我发现我必须创建一个环境.变量来解决这个问题(https://github.com/spotify/docker-maven-plugin/issues/135):

set DOCKER_HOST=set DOCKER_HOST=tcp://192.168.99.100:2376
Run Code Online (Sandbox Code Playgroud)

docker_host

所以在设置了env之后.变量我一直得到这个ClientProtocolException:

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.3.258:build (default-cli) on project docker_micro_maven: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.client.ClientProtocolException: The server failed to respond with a valid HTTP response
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题,任何输入都会非常感激.

java spotify maven docker docker-toolbox

8
推荐指数
1
解决办法
4103
查看次数

在Spring Boot中未经授权的Zuul代理oAuth2

我有一个使用oAuth2保护的微服务,称为国家服务。当我直接向此服务(包括JWT承载令牌)发送请求时,一切正常:

在此处输入图片说明

server:
  port: 8081

spring:
  database:
    driverClassName: org.postgresql.Driver
  datasource:
    url: jdbc:postgresql://localhost:5432/vue-boot-country
    username: postgres
    password: postgres
  jpa:
    hibernate:
      ddl-auto: validate
    database-platform: org.hibernate.dialect.PostgreSQLDialect

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
Run Code Online (Sandbox Code Playgroud)

我也有一个api网关(Zuul代理):

@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class VueBootApiGatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(VueBootApiGatewayApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

除了这两个没有其他文件

server:
  port: 8765

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

zuul:
  routes:
    vue-boot-country-service: /api/country/**
  add-proxy-headers: true
Run Code Online (Sandbox Code Playgroud)

我无法将成功的请求发送到代理,我不断收到“未经授权”错误:

在此处输入图片说明

注意:当我从资源服务器中删除oAuth2安全性时,Zuul代理似乎可以正常工作。

有人知道我在这里做错了吗?

proxy spring oauth-2.0 spring-boot netflix-zuul

7
推荐指数
2
解决办法
2109
查看次数

Spotify docker-maven-plugin未经授权:身份验证需要公开回购

我无法使用以下命令将docker镜像推送到集线器:

mvn clean package docker:build -DpushImage
Run Code Online (Sandbox Code Playgroud)

每次我得到以下回复:

[WARNING] Failed to push jdruwe/k8s-product-owner, retrying in 10 seconds (5/5).

...

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project k8s-product-owner: Exception caught: unauthorized: authentication required -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下命令之一登录时,我不断收到错误甚至登录成功

docker login -u jdruwe https://index.docker.io/v1/

OR

docker login
Run Code Online (Sandbox Code Playgroud)

我确实在集线器上创建了一个空仓库,试图修复它:

在此输入图像描述

有任何想法吗?

spotify maven-plugin maven docker docker-registry

7
推荐指数
1
解决办法
5095
查看次数

JaCoCo:缺少类目录

我是JaCoCo的新手,我在编写代码覆盖率报告时遇到了麻烦.

这是我的项目结构:

我的集成测试存在于"......-集成测试"模块中.当我使用mvn构建我的项目时,我在日志记录中得到以下内容:

[INFO] Skipping JaCoCo execution due to missing classes directory: ...-integration-tests\target\classes
Run Code Online (Sandbox Code Playgroud)

这是正确的,因为我的编译代码仅在相应模块的目标>类中可用.

使这项工作的最佳方法是什么?提前致谢!

java integration-testing code-coverage maven jacoco

6
推荐指数
1
解决办法
2412
查看次数