首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能使用点燃时间/REST-API-客户端在开火时创建用户

未能使用点燃时间/REST-API-客户端在开火时创建用户
EN

Stack Overflow用户
提问于 2020-07-23 11:52:21
回答 1查看 158关注 0票数 0

我正在尝试使用rest客户端创建一个用户。我遵循了以下文档,https://github.com/igniterealtime/REST-API-Client

虽然我能够通过ARC/Postman创建用户,但当我通过编程尝试时,我得到了以下的异常。

下面是我的代码:

代码语言:javascript
复制
AuthenticationToken authenticationToken = new AuthenticationToken(Constants.SHARED_SECRET_KEY);
RestApiClient restApiClient = new RestApiClient(Constants.REST_API_URL, Constants.REST_API_PORT, authenticationToken);

UserDetails userDetails = getUserDetails();
UserEntity userEntity = new UserEntity();
userEntity.setName(userDetails.getName());
userEntity.setEmail(userDetails.getEmail());
userEntity.setPassword(Constants.DEFAULT_PASSWORD);
userEntity.setUsername(userDetails.getName());
restApiClient.createUser(userEntity);  

build.gradle:

代码语言:javascript
复制
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.navigation:navigation-fragment:2.3.0'
implementation 'androidx.navigation:navigation-ui:2.3.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

implementation "org.igniterealtime.smack:smack-tcp:4.2.0"
implementation "org.igniterealtime.smack:smack-experimental:4.2.0"
implementation ("org.igniterealtime.smack:smack-android:4.2.0"){
    exclude module: 'smack-omemo'
    exclude module: 'smack-omemo-signal'
}

implementation ('org.igniterealtime:rest-api-client:1.1.5'){
    exclude module: 'javax.inject'
}
implementation 'javax.inject:javax.inject:1'

}

注意:我必须将'javax.inject‘模块从org.ignitericitime:rest-api-client:1.1.5中排除在外,因为它导致了模块中的重复类javax.inject.Inject,这些类可以在javax.inject.Inject中找到,这些类可以在javax.inject.Inject模块中找到-javax.Inject-2.5.0-b05.jar

异常: E/SessionManager:未能使用rest客户端创建用户。找不到媒体类型= org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: /xml,type=class org.igniterealtime.restclient.entity.UserEntity,genericType=class org.igniterealtime.restclient.entity.UserEntity.在org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:247) at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130) at org.glassfish.jersey.client.ClientRequest.doWriteEntity(ClientRequest.java:517) at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:499) at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:393)在org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252) at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:701) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) atorg.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:697) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:448) at org.igniterealtime.restclient.RestClient.call(RestClient.java:153) at org.igniterealtime.restclient.RestClient.post(RestClient.java:99) at org.igniterealtime.restclient.RestApiClient.createUser(RestApiClient.java:138) at com.example.gossip.login.SessionManager.com.example.gossip.login.LoginActivity$1.onClick(LoginActivity.java:58),android.view.View.performClick(View.java:5610),android.view.View$PerformClick.run(View.java:22265),android.os.Handler.handleCallback(Handler.java:751),android.os.Handler.dispatchMessage(Handler.java:95),android.os.Looper.loop(Looper.java:154),android.app.ActivityThread.main(ActivityThread.java:6077),java。com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)的lang.reflect.Method.invoke(原生方法)

EN

回答 1

Stack Overflow用户

发布于 2020-07-29 08:19:29

您需要添加泽西媒体依赖项。

代码语言:javascript
复制
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-jaxb</artifactId>
    <version>2.17</version>
</dependency>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63053621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档