[英]How do I enable automatic JSON marshalling in Jersey using autodiscovery?
[英]How do I serialize to Json with Jersey? (I'm using Gradle)
每當我返回時,我都試圖讓Jersey對序列化我的對象,如下所示:
@POST
@Path("/new")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.APPLICATION_JSON)
public User newUser(String username) {
return new User(username);
}
當我使用例如“john”對此發出POST請求時,它應該以User
的json表示進行響應。 但是,它所做的只是提供錯誤狀態500,並且服務器記錄以下內容
全局讀者攔截器:org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor全局編寫器攔截器:org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor name:carl returns:cd.orbit。 org.glassfish.jersey.message.internal.WriterInterceptorExecutor $ TerminalWriterInterceptor aroundWriteTo SEVERE:找不到媒體類型= application / json的MessageBodyWriter,type = class cd.orbit.server.server.User@4c84f510 jul 05,2014 10:17:49 PM .User,genericType = class cd.orbit.server.User。
這讓我覺得在某種程度上找不到將我的User對象變成Json的庫/方法,但是我有以下gradle構建文件(注意jackson依賴項):
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.appengine:gradle-appengine-plugin:1.9.6'
}
}
apply plugin: 'war'
apply plugin: 'appengine'
sourceCompatibility = 1.7
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
providedCompile 'javax.servlet:servlet-api:2.5'
compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.6'
testCompile group: 'junit', name: 'junit', version: '4.11'
compile 'org.glassfish.jersey.core:jersey-client:2.10.1'
compile 'org.glassfish.jersey.core:jersey-server:2.10.1'
compile 'org.glassfish.jersey.core:jersey-common:2.10.1'
compile 'org.glassfish.jersey.containers:jersey-container-servlet-core:2.10'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.3.2'
compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.3.2'
compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.3.2'
compile 'com.badlogicgames.gdx:gdx:1.0.0'
}
appengine {
httpPort = 8085
appcfg {
email = 'aaaaa'
passIn = true
app {
id = 'aaaaa'
}
}
}
task copyDeps(type: Copy) {
from configurations.runtime
into "${rootDir}/war/WEB-INF/lib"
}
順便說一下, User
類使用了所有正確的注釋。
為什么運行Jersey的我的服務器(Google App Engine)不能以JSON格式返回項目?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.