我有一个网络服务,从这个网络服务我应该将一个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异常。任何人都可以帮助我
答案 0 :(得分:0)
您似乎没有在请求中传递QueryParameter。
PathParam用于从Path中提取数据,即“endpoint / {id} / help”,然后PathParam“id”将返回“endpoint /”和“/ help”之间的任何内容。
QueryParam用于从Query中提取数据,即“endpoint / help?id =”,然后QueryParam将返回您拥有的任何内容而不是您的请求。
虽然技术上合法,但您应该尽量避免混合和匹配,只使用其中一种。
修改强>
另外,虽然我不确定,但我非常有信心你不能/不应该使用对象图来传递你的其余资源。