0

我有一个网络服务,我应该从这个网络服务将一个对象传递给另一个服务。我尝试使用 @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 服务。但是这个对象没有被传递给 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;
    }
}

这里我的对象给出了空指针异常。有人能帮我一下吗

4

1 回答 1

0

您似乎没有在请求中传递 QueryParameter。

PathParam 用于从路径中提取数据,即“endpoint/{id}/help”,然后PathParam“id”将返回“endpoint/”和“/help”之间的任何内容。

QueryParam 用于从 Query 中提取数据,即 "endpoint/help?id=" 然后 QueryParam 将返回您拥有的任何内容,而不是您的请求。

虽然在技术上是合法的,但您应该尽量避免混合和匹配,而只使用其中一种。

编辑

另外,虽然我不确定,但我非常有信心你不能/不应该使用对象图来传递你的休息资源。

于 2013-03-20T14:00:08.957 回答