将对象传递给另一个Web服务

时间:2013-03-20 13:46:29

标签: java web-services rest

我有一个网络服务,从这个网络服务我应该将一个obejct传递给另一个服务。我尝试使用@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服务。但是这个Object没有传递给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异常。任何人都可以帮助我

1 个答案:

答案 0 :(得分:0)

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

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

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

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

修改

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