0

Web サービスがあり、この Web サービスからオブジェクトを別のサービスに渡す必要があります。@Pathparam と @QueryParam を試しましたが、サービスで値を取得できません。

オブジェクトを渡すコードは

public void MediatorCmpService() {
    ClientConfig config = new DefaultClientConfig();
    Client client = Client.create(config);
    WebResource service = client.resource(getBaseURI()); 
    boolean flag = validateConfig(iFGetResponse);

    if (flag) {
        CustomerData customerData = transformationPayload(iFGetResponse);
        TrilliumxmlProducer tri=new TrilliumxmlProducer(customerData);
    }
    System.out.println(flag);
}

ここでは、customerData オブジェクトを TrilliumxmlProducer Service に渡しています。しかし、このオブジェクトは TrilliumxmlProducer サービスに渡されません

TrilliumxmlProducer のコードは次のとおりです。

@Path("/generateTrillium")
public class TrilliumxmlProducer {
    // This method is called if XMLis request
    public TrilliumxmlProducer(CustomerData customerData) throws JAXBException {

        getXML(customerData);
        // TODO Auto-generated constructor stub
    }

    @GET
    @Produces({ MediaType.APPLICATION_XML })
    public CustomerData getXML(@QueryParam("customerData") CustomerData customerData) throws JAXBException {
        System.out.println("--------2----------" + customerData.getREQUESTTYPE());

        return customerData;
    }
}

ここで私のオブジェクトは nullpointer 例外を与えています。誰でもここで私を助けることができます

4

1 に答える 1

0

リクエストで QueryParameter を渡していないようです。

PathParam はパスからデータを抽出するために使用されます。つまり、"endpoint/{id}/help" の場合、PathParam "id" は "endpoint/" と "/help" の間にあるものを返します。

QueryParam は、クエリからデータを抽出するために使用されます。つまり、「endpoint/help?id=」の場合、QueryParam は、リクエストではなく、ユーザーが持っているものを返します。

技術的には合法ですが、混合と一致を避け、どちらか一方のみを使用するようにしてください。

編集

また、確かではありませんが、残りのリソースを渡すためにオブジェクトグラフを使用できない/使用すべきではないことはかなり確信しています。

于 2013-03-20T14:00:08.957 に答える