4

application/json基本的に、消費( )および生成( )する安らかなサービス(投稿)がありapplication/jsonます。このサービスの単一のパラメーターは、注釈付きの Java オブジェクトです。

org.jboss.resteasy.client.ClientRequestサービスにリクエストを送信するために使用しています。ただし、クライアント側でこの例外と例外が発生しています。

content-type type のライターが見つかりませんでしたapplication/json

これは、いくつかのライブラリ jar が不足しているということですか、それとも application/json 用に独自のライターを作成する必要があるということですか?

私はresteasy 1.1を使用しています

マーク

4

3 に答える 3

7

ラーメンは正しいです。投棄は有効なオプションです。ジャクソンも使えます。Maven を使用している場合は、pom に次の依存関係を含めるだけです。

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>2.3.2.Final</version>
    </dependency>

その時点で、次のようなコードを書くのに問題はないはずです:

    SomeBean query = new SomeBean("args")
    request.body("application/json", query);
    ClientResponse response = request.post();
于 2012-04-05T15:05:35.447 に答える
2

実際、私は同じ問題を抱えていました.application/json MIMEタイプのjettisonプロバイダーを追加することで解決しました. resteasy 1.1 に jettison プロバイダーが含まれているかどうかはわかりませんが、バージョン 1.2 には含まれています。また、jdk 1.6 を使用している場合は、javax.xml.stream:stax-api jar ファイルを除外する必要があります。そうしないと、問題が発生します。

次に例を示します。

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;


@XmlRootElement(name="account")
public class Account {

    private Long id;
    private String accountNo;


    public Account(){}
    public Account(String no)   {
        accountNo=no;
    }


    @Id
    @XmlElement
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }

    @XmlElement
    public String getAccountNo() {
        return accountNo;
    }
    public void setAccountNo(String a) {
        accountNo = a;
    }

}

および JAXB クラス:

import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;


    @Path("/account")
    public class AccountService {


        @GET
        @Path("/{accountNo}")
        @Produces("application/json")
        public Account getAccount(@PathParam("accountNo") String accountNo) {
                   return new Account(accountNo);
        }

    }

それでは、良い一日を!

于 2010-09-09T04:51:22.610 に答える
1

Resource クラスまたは例外の原因となっているメソッドに以下を追加します

@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
于 2013-11-28T21:00:14.753 に答える