小编rmu*_*ler的帖子

无法为类example.Simple创建调用适配器

我正在使用SimpleXml改装2.0.0-beta1.我想从REST服务中检索一个简单(XML)资源.使用SimpleXML编组/解组Simple对象可以正常工作.

使用此代码时(转换后的2.0.0代码形式):

final Retrofit rest = new Retrofit.Builder()
    .addConverterFactory(SimpleXmlConverterFactory.create())
    .baseUrl(endpoint)
    .build();
SimpleService service = rest.create(SimpleService.class);
LOG.info(service.getSimple("572642"));
Run Code Online (Sandbox Code Playgroud)

服务:

public interface SimpleService {

    @GET("/simple/{id}")
    Simple getSimple(@Path("id") String id);

}
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

Exception in thread "main" java.lang.IllegalArgumentException: Unable to create call adapter for class example.Simple
    for method SimpleService.getSimple
    at retrofit.Utils.methodError(Utils.java:201)
    at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:51)
    at retrofit.MethodHandler.create(MethodHandler.java:30)
    at retrofit.Retrofit.loadMethodHandler(Retrofit.java:138)
    at retrofit.Retrofit$1.invoke(Retrofit.java:127)
    at com.sun.proxy.$Proxy0.getSimple(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我知道通过Call作品包装返回类型.但是我希望服务将业务对象作为类型返回(并在同步模式下工作).

UPDATE

添加额外的依赖项后,并.addCallAdapterFactory(RxJavaCallAdapterFactory.create())根据不同的答案建议,我仍然会收到此错误:

Caused by: java.lang.IllegalArgumentException: Could not locate call adapter for class simple.Simple. Tried:
 * retrofit.RxJavaCallAdapterFactory
 * retrofit.DefaultCallAdapter$1
Run Code Online (Sandbox Code Playgroud)

java rest simple-framework retrofit

67
推荐指数
9
解决办法
6万
查看次数

如何在ansible库存文件中将列表值指定为变量?

我需要像(安全库存文件)这样的东西:

[example]
127.0.0.1 timezone="Europe/Amsterdam" locales="en_US","nl_NL"
Run Code Online (Sandbox Code Playgroud)

但是,ansible不会将"locales"识别为列表.

variables list inventory ansible

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

Visual Studio Code:保存时运行节点脚本

我使用 Visual Studio Code (1.8.1) 为 NodeJS 7.3 编写 ECMAScript 6(因此目前没有TypeScript)。

我想在每次保存脚本文件时从命令行 ( node ${file})运行当前脚本。这可能吗?

需要明确的是:NodeJS 不是作为服务器运行,而是用于执行 cli 脚本。

javascript node.js visual-studio-code

8
推荐指数
2
解决办法
6183
查看次数

HashMap性能Java 9比Java 8低25%?

注意:这与性能问题无关.我只观察到无法解释/理解的性能差异.

在对一些针对Java 9的新开发的代码进行基准测试时,我发现了一些奇怪的东西.HashMap带有5个密钥的(非常)简单基准测试表明,Java 9比Java 8慢得多.这可以解释一下,还是我的(基准)代码完全错误?

码:

@Fork(
    jvmArgsAppend = {"-Xmx512M", "-disablesystemassertions"}
)
public class JsonBenchmark {

    @State(Scope.Thread)
    public static class Data {

        final static Locale RUSSIAN = new Locale("ru");
        final static Locale DUTCH = new Locale("nl");

        final Map<Locale, String> hashmap = new HashMap<>();

        public Data() {
            hashmap.put(Locale.ENGLISH, "Flat flashing adjustable for flat angled roof with swivel");
            hashmap.put(Locale.FRENCH, "Solin pour toit plat inclinée");
            hashmap.put(Locale.GERMAN, "Flachdachkragen Flach Schrägdach");
            hashmap.put(DUTCH, "Plakplaat vlak/hellend dak inclusief glijschaal");
            hashmap.put(RUSSIAN, "?????? ????? ??????? …
Run Code Online (Sandbox Code Playgroud)

performance-testing jmh java-9

8
推荐指数
2
解决办法
2453
查看次数

jshell中J和R标志的确切含义/目的是什么?

从帮助信息:

-J<flag>              Pass <flag> directly to the runtime system.
                      Use one -J for each runtime flag or flag argument
-R<flag>              Pass <flag> to the remote runtime system.
                      Use one -R for each remote flag or flag argument
Run Code Online (Sandbox Code Playgroud)

我在工具文档jshell用户指南中都找不到解释.

另外,什么是jshell上下文中的"远程运行时系统"?

runtime java-9 jshell

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

在 MariaDB 中存储密码/登录路径的位置(相当于 mysql-config-editor)?

我们目前使用 MySQL 5.7 并通过mysql-config-editor存储密码。它将登录路径存储在加密文件中.mylogin.cnf

MariaDB 不支持此功能(并认为这是一个坏主意)。那么,MariaDB 的做法是什么?

PostgreSQL 提供~/.pgpass了这个目的。

mysql security mariadb

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

用Java解析YAML前端问题

我要解析YAML Front Matterjava一样jekyll,所以Iooked到源代码,并且发现这个,但我不能让它多大意义(我不知道很多红宝石).

所以我的问题是,我如何解析YAML Front Matterjava?

我的classpath中有snakeyaml,我YAML Front Matter将从markdown文件解析,我使用pegdown

java parsing yaml snakeyaml jekyll

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

java.lang.InternalError:在第1帧预期的CallerSensitive注释

在静态方法(Annotated with @CallerSensitive)中,我尝试获取调用类的名称:

@CallerSensitive
public static void someMethod() {
    String name = sun.reflect.Reflection.getCallerClass().getName();
    ...
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

java.lang.InternalError: CallerSensitive annotation expected at frame 1
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

参考

UPDATE

我用java 8(U25),并且该方法getCallerClass()弃用(getCallerClass(int)已过时),为可以拆卸的字节码时,可以看出:

$ /usr/lib/jvm/java-8-oracle/bin/javap -cp /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar -verbose sun.reflect.Reflection > bytecode
Run Code Online (Sandbox Code Playgroud)

输出(仅显示相关行)

Classfile jar:file:/usr/lib/jvm/jdk1.8.0_25/jre/lib/rt.jar!/sun/reflect/Reflection.class
Last modified Sep 17, 2014; size 6476 bytes
Compiled from "Reflection.java"
public class sun.reflect.Reflection
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#78 = Utf8               Lsun/reflect/CallerSensitive;
#80 = Utf8 …
Run Code Online (Sandbox Code Playgroud)

java

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

使用 maven-checkstyle-plugin 时如何抑制 maven 输出中的警告?

我的构建因 checkstyle 错误(不是警告)而失败。只要有任何 checkstyle 错误,我希望警告不会显示在(maven 生成的)输出中。如何实现这一目标?

# First is error, should be reported, second is a warning, should not be reported in the maven output. 
...data/Decimal.java:286:31: '7L' is a magic number.
.../data/Decimal.java:296:5: warning: Missing a Javadoc comment.
Run Code Online (Sandbox Code Playgroud)

更新:见我的评论。这个问题不是关于抑制特定警告!这只是关于不在 maven 输出中显示所有警告!

java checkstyle maven

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

作为 snap 包安装时如何配置 netbeans?

我通过 snap 在 Ubuntu 18.04 上安装了 Netbeans 11.2。

现在我想配置 Netbeans,修改netbeans.conf. 该文件放置在/snap/netbeans/current/netbeans/etc/只读文件系统中并安装为只读文件系统。所以我认为你不应该在这里编辑这个文件。

如果经典方式(编辑netbeans.conf)被阻止,我该如何配置 Netbeans?

注:我要设置netbeans_jdkhome="~/.sdkman/candidates/java/latest/".

更新

这有效:

netbeans --jdkhome ~/.sdkman/candidates/java/latest
Run Code Online (Sandbox Code Playgroud)

java ubuntu netbeans netbeans-11

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