2

私はWebサービスの初心者です。jax.ws..と でWeb サービスを使用しようとしてjerseyspringます。Chrome Post ClientWindows を使用して、またはWindows でリクエストを送信しようとするとCURL、次のスタック トレースが発生します。

SEVERE: Servlet.service() for servlet [jersey-serlvet] in context with path [/rest] threw exception [Servlet execution threw an exception] with root cause
java.lang.AbstractMethodError
at org.codehaus.jackson.map.AnnotationIntrospector$Pair.findDeserializer(AnnotationIntrospector.java:1335)
at org.codehaus.jackson.map.deser.BasicDeserializerFactory.findDeserializerFromAnnotation(BasicDeserializerFactory.java:675)
at org.codehaus.jackson.map.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:535)
at org.codehaus.jackson.map.deser.StdDeserializerProvider._createDeserializer(StdDeserializerProvider.java:432)
at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:341)
at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:321)
at org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:167)
at org.codehaus.jackson.map.deser.StdDeserializerProvider.findTypedValueDeserializer(StdDeserializerProvider.java:188)
at org.codehaus.jackson.map.ObjectMapper._findRootDeserializer(ObjectMapper.java:2820)
at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2690)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)
at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)
..............................

以下は私の例のコードです:

@Path("/loginPoint")
@Service
public class UserService {

@Resource(name= "commanUserService")
private CommanUserService commanUserService;

@POST
@Path("/login")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response login(LoginRequest request){
    System.out.println("Hello In web Services >>>>>>>>>>>>>>>>>>>>>>>>> ");
    LoginResponse  response = commanUserService.getUserloginInformation(request);
    return Response.status(Status.OK).entity(response).build();
 }
}

LoginRequest.java ファイルのコード:

@XmlRootElement(name="loginRequest")
public class LoginRequest {
private String userName;
private String password;

@XmlElement("userName")
public String getUserName() {
    return userName;
}
public void setUserName(String userName) {
    this.userName = userName;
}

@XmlElement("password")
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
 }
}

JSON問題はリクエストパラメーターをエンティティにマッピングすることにあると思いますが、LoginRequestよくわかりません。

4

3 に答える 3

6

The issue was a mismatch between Jackson versions.

于 2013-08-27T15:36:09.183 に答える
3

jackson-mapper-asl で jackson-core-asl 依存関係を使用する場合は、同じバージョンを選択するように注意してください。

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>${jackson.version}</version>
    </dependency>
于 2013-10-24T10:28:46.540 に答える
3

同じ問題が発生し、自分で解決しました。問題はjersy ( jersy-json, jersy-server ) とjackson ( jackson-core-asl, jackson-mapper-asl ) jar間のバージョン互換性にありました。

jersy 1.8 と jackson 1.8.1 jar のような互換性のあるバージョンを使用してください。

于 2014-08-22T12:19:11.123 に答える