小编Ale*_*shi的帖子

Android中RuntimeException("Stub!")的含义

我在Android代码中浏览,因为我想查看Activity.finish()方法的内容.

我只想确认在Activity.finish()那里会调用onDestroy()方法.

但我在这种方法(以及许多其他方法)中发现的是:

public void finish() {
    throw new RuntimeException("Stub!");
}
Run Code Online (Sandbox Code Playgroud)

那么在哪里可以找到真正破坏活动的代码?谢谢!

java android stub android-activity

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

IntelliJ社区无法找到Web应用程序工件来生成WAR

我正在使用IntelliJ-IDEA Community Edition从Maven-Project 生成war文件.

当生成这个war文件时,我无法在工件中找到war选项.

我试过:

1)转到文件>项目结构>工件>类型,但未提及WAR;

2)右键单击Project Module>添加框架支持,但未提及Web应用程序(我只有Groovy,Kotlin(Java),Kotlin(JavaScript).

这是我的pom.xml文件:

    <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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>mawashi.alex.firstapp</groupId>
      <artifactId>firstapp</artifactId>
      <packaging>war</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>firstapp</name>
      <url>http://maven.apache.org</url>
  <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>1.2.7.RELEASE</version>
  </parent>
  <properties>
     <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <!--automatic configuration for web applications-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>1.4.1.RELEASE</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugins</artifactId>
      </plugin>
    </plugins>
  </build>

  <repositories>
    <repository>
      <id>spring-milestone</id>
      <url>https://repo.spring.io/libs-release</url>
    </repository>
    <repository>
      <id>sonatype-snapshots</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <snapshots> …
Run Code Online (Sandbox Code Playgroud)

java spring intellij-idea spring-boot

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

记录 http.ResponseWriter 内容

前提:我发现了类似的问题,但不适用于我的情况,所以请不要将其标记为重复。

我在 Go 中有一个 HTTP 服务器,我创建了一个中间件来记录请求、响应时间,我也想记录响应。

我已经在包下httputil.DumpRequest调用的函数中使用了。如何正确获取响应正文、状态和标头并将它们与其他数据一起记录?HTTPRequestlogw http.ResponseWriter

我的问题是:我想拦截响应标头、状态和正文,并将其与请求和响应时间一起记录

这是代码:

log "core/logger"
...
func RequestLoggerMiddleware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        start := time.Now()

        defer func() {
            log.Info(
                fmt.Sprintf(
                    "[Request: %s] [Execution time: %v] [Response: %s]",
                    log.HTTPRequest(r),
                    time.Since(start),
                    // RESPONSE DATA HERE !!!!!!!
                ))
        }()
        next.ServeHTTP(w, r)
    })
}
Run Code Online (Sandbox Code Playgroud)

logging middleware go

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

具有 CompletableFuture 的非阻塞异步 Jersey JAX-RS

我正在研究 Jersey,我在一本书中看到您可以使用 CompletableFuture (和 CompletitionStage)以非阻塞 IO 方式调用您的 API。

但是当我用Postman调用API时,我总是得到500。

如果我调试代码,我会发现这些方法被正确调用。

第一个 GET 方法是同步的并且可以正确工作。第二次和第三次返回错误500。

我缺少什么?

@Path("/hello")
public class HelloController {

  @GET
  @Path("/first")
  @Produces(MediaType.TEXT_PLAIN)
  public String first() {
    return "It works";
  }

  @GET
  @Path("/second")
  @Produces(MediaType.TEXT_PLAIN)
  public CompletionStage<Response> second() {
    return CompletableFuture.supplyAsync(() -> Response.accepted().entity("Hello!").build());
  }

  @GET
  @Path("/third")
  @Produces(MediaType.TEXT_PLAIN)
  public CompletableFuture<Response> third() {
    return CompletableFuture.supplyAsync(() -> Response.accepted().entity("Hello!").build());
  }
}
Run Code Online (Sandbox Code Playgroud)

java asynchronous jax-rs jersey completable-future

5
推荐指数
1
解决办法
3061
查看次数

麻烦两个docker容器之间的通信

我是docker的新手,我正在尝试将运行到我的boot-example docker容器中的spring boot app连接到运行到端口6603上的mymysql docker容器的mysql服务器,两者都运行在同一台机器上.事实是:如果我将我的spring-boot应用程序连接到mymysql docker容器以便与数据库通信,我没有错误,一切正常.

当我将我的spring启动应用程序移动到我的启动示例容器并尝试与我的mymysql容器进行通信(通过Hibernate)时,我收到此错误:

2018-02-05 09:58:38.912 ERROR 1 --- [           main] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_111]
Run Code Online (Sandbox Code Playgroud)

我的spring boot application.properties是:

server.port=8083
spring.jpa.hibernate.ddl-auto=create-drop
spring.datasource.url=jdbc:mysql://localhost:6603/mydockerdb
spring.datasource.username=root
spring.datasource.password=mypassword
Run Code Online (Sandbox Code Playgroud)

它工作正常,直到我的春季启动应用程序在端口8082上的docker容器中运行(在正确构建docker镜像之后):

docker run -it …
Run Code Online (Sandbox Code Playgroud)

java mysql spring docker spring-boot

4
推荐指数
3
解决办法
2396
查看次数

Android Dagger 2无法解析符号构建器()

我在Android Studio中使用Dagger 2,但是当尝试通过DaggerMyComponent.builder().myModule(new MyModule()).build()创建Component时,我总是看到红色的" builder() " 这个词,它说"无法解析符号构建器".

我必须说我已经多次清理和构建了项目,甚至评论了组件实例并在重建后对其进行了解除.我还必须说我可以检查DaggerMyComponent.class,一切似乎都没问题,事实上,我可以毫无问题地导入该类.

该示例在GithHub上共享,链接如下:

https://github.com/alessandroargentieri/LetsDagger2Together

我有两个类:BClass和AClass,它取决于第一个.我有ABModule.class,它是工厂方法,ABComponent是组件接口.DaggerABComponent创建到WholeApplication.class中,扩展了Application.

package mawashi.alex.letsdagger2together.Application;

import android.app.Application;
import mawashi.alex.letsdagger2together.DaggerClasses.ABComponent;
import mawashi.alex.letsdagger2together.DaggerClasses.ABModule;
import mawashi.alex.letsdagger2together.DaggerClasses.DaggerABComponent;

public class WholeApplication extends Application {
    static ABComponent component;

    @Override
    public void onCreate() {
        super.onCreate();
        //here is where builder() is not recognized
        component = new DaggerABComponent.builder().aBModule(new ABModule()).build();

    }

    public static ABComponent getComponent(){
        return component;
    }
}
Run Code Online (Sandbox Code Playgroud)

模块:

package mawashi.alex.letsdagger2together.DaggerClasses;

import dagger.Module;
import dagger.Provides;
import mawashi.alex.letsdagger2together.Model.AClass;
import mawashi.alex.letsdagger2together.Model.BClass;

@Module
public class ABModule {

    @Provides
    public BClass …
Run Code Online (Sandbox Code Playgroud)

android dagger dagger-2

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

构建 monad 时 Java 泛型的问题

我正在玩 Java 代码以创建一个函数式风格的 monad,但是我在使用泛型时感到震惊,如果我不强制转换我的对象,Java 编译器会给我一个编译错误(尽管泛型可以解决这个问题!)

这是用法:

//COMPILATION ERROR! It requires a cast to String
String message = If.of("Hi", s->s!=null).apply(s->s+" guys!").get();
Run Code Online (Sandbox Code Playgroud)

允许:

这是我的单子:

import java.util.function.Function;
import java.util.function.Predicate;

public class If<T, R> {

  private T t;
  private Predicate predicate;

  private If(T t, Predicate predicate) {
    this.t = t;
    this.predicate = predicate;
  }

  public static<T> If of(T t, Predicate predicate) {
    return new If(t, predicate);
  }

  public If<R,R> apply(Function<T, R> function) {
    if(predicate!=null && predicate.test(t)){
        return new If<R, R>(function.apply(t), null);
    }
    return If.of(this.t, …
Run Code Online (Sandbox Code Playgroud)

java generics monads functional-programming

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