응답 개체에 대한 MessageBodyWriter를 찾을 수 없습니다. IDEA로 실행하면 undertow + resteasy + ajckson으로 REST 서비스를 개발합니다. 모든 사항이 정상이지만 " Gradle을 또는 받는다는과 지방 항아리 "나는 GET 쿼리시 오류가 발생합니다 :org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure :
org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure가 : org.jboss.resteasy에서 유형 의 응답 개체에 대한 MessageBodyWriter를 찾을 수 없습니다. core.ServerResponseWriter.writeNomapResponse (ServerResponseWriter.java:67) at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse (Synchro org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:200에서 org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:397) ) 에서의 nousDispatcher.java:448) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:56) 에서의 org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service (ServletContainerDispatcher.java:220) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:51) (javax.servlet.http.HttpServlet.java:790)
gradle build
으로 오류없이 jar를 만들고 IDEA에서 내 서비스를 디버깅 할 수 있습니다.
:
apply plugin: 'application'
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
mainClassName = 'example.json.RestServer'
jar {
manifest {
attributes 'Implementation-Title': 'Rest-server',
'Implementation-Version': '0.1',
'Main-Class': 'example.json.RestServer'
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
repositories {
jcenter()
}
dependencies {
compile 'io.undertow:undertow-core:1.4.0.Final'
compile 'io.undertow:undertow-servlet:1.4.0.Final'
compile 'org.jboss.resteasy:jaxrs-api:3.0.12.Final'
compile 'org.jboss.resteasy:resteasy-undertow:3.0.12.Final'
compile 'org.jboss.resteasy:resteasy-jackson-provider:3.0.12.Final'
testCompile 'junit:junit:4.12'
}
내 소스 : 익명 GenericEntity 서브 클래스는 올바른 유형의 정보를 제공 할 필요가 있기 때문에 아래와 같이 마지막 코드 스피 넷을 변경하는
@Path("calculator")
public class Calculator {
@GET
@Path("squareRoot")
@Produces(MediaType.APPLICATION_JSON)
public Response squareRoot(@QueryParam("input") double input){
Result result = new Result("Square Root");
result.setInput(input);
result.setOutput(Math.sqrt(result.getInput()));
return Response.status(200).entity(result).build();
}
다, 나는 단지 파일을 구축하여 오류를 확인 withmy 코드가 여기에있다,하지만 난 어디서 찾을 수 없습니다 – mystdeim