两个项目之间传递参数问题 --- 大神进
情况
1.两个ssh项目 oms 与 GiftERP
2.调用的是GiftERP的一个Goods表,需要将表数据返回给oms项目
3.首先我oms的页面有一个查询所有商品的action链接 指向 GiftERP项目中 它
获取数据 返回到我的action 我如何获得
个人想法:
session共享 但是这样不好 因为我的oms项目没有映射ERP的产品等表的ORM
xml 这个可以ERP写入本地后返回oms的action 然后oms在本地读取 可是我还是觉得不对
请问大家有什么好方法 action session xml ssh 共享
[解决办法]
提供接口 两个项目可以互相访问
[解决办法]
public void postOne(String url, Object task)
{
try
{
HttpPost httpost = new HttpPost(url);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("appID", task.getAppID()));
params.add(new BasicNameValuePair("cpID", task.getCpID().toString()));
params.add(new BasicNameValuePair("appToken", task.getAppToken()));
params.add(new BasicNameValuePair("price", task.getPrice().toString()));
params.add(new BasicNameValuePair("receipt", task.getReceipt()));
params.add(new BasicNameValuePair("userDeviceID", task.getUserDeviceID()));
httpost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse remoteResponse = this.httpClient.execute(httpost);
int responseState = remoteResponse.getStatusLine().getStatusCode();
if (HttpStatus.SC_OK == responseState)
{
// 请求成功
HttpEntity responseEntity = remoteResponse.getEntity();
if (responseEntity != null)
{// 返回信息
String strEntity = EntityUtils.toString(responseEntity, HTTP.UTF_8);
System.out.println(strEntity);
}
}
} catch (Exception e)
{
e.printStackTrace();
}
}
2、A项目只负责调取;B项目不但要负责基本的业务处理还要负责将完整的结果交予A,所以B项目才是关键。
3、A和B需要一个通道,上面我们说过了,这个通道实际承载着较大的任务量。所以,该通道需要独立出来;还有,B在处理业务的时候,其最后处理的时间或长或短,是不可控的。
4、最后,建议用WEBSERVICE来进行处理。说到这儿,LZ可能会喷我,其实不然:HTTP请求方式是有时间限制的,超时将会关闭。
5、哦,对了。因为会有诸多的请求,可以考虑加入线程处理,将请求放入队列,这样可以避免请求无果。