两个java web项目的通信

时间:2022-04-11 20:11:59
现在是这样的,我们有一套web应用,客户还有一个OA系统。我们这个WEB应用里面有一部分是业务处理的(也相当于一个OA),现在是这样的客户要求我们这个系统的业务处理要能发送到他那个OA进行处理。请各位大神提供思路,用什么技术。我打算用webservice,在我们的系统需要将数据发送给OA的时候就去调用OA暴露的webservice,我们的web应用也暴露个webservice,如果OA处理完成后再调用我们的webservice。这样是不是过于麻烦?平时你们都是怎么做的。最进问题多 没什么分了。谢谢大家了

9 个解决方案

#1


当然可以用webservice,也可以直接使用HttpURLConnection,比如
/***
 * @return :response result;session id;contentType,such as "image/gif;charset=UTF-8"
 */
public Object[] commResult(String urlStr, String sendData, String contentType, String cookies) throws Exception {
// URL url = new URL(urlString);
URL url = new URL(urlStr);
HttpURLConnection huc = (HttpURLConnection) url.openConnection();

int length = 0;
byte[] sendByte = null;
String mode = "GET";
if (sendData != null && !sendData.equals("")) {
sendByte = sendData.getBytes(encode);
length = sendByte.length;
mode = "POST";
}
setHeader(huc, length, mode, contentType);
// 是否输出数据
huc.setDoOutput(true);
// 是否输入数据
huc.setDoInput(true);
// 是否缓存数据,post方法不需要缓存数据
huc.setUseCaches(false);

// 设置cookies
if (!NullUtil.isNullOrEmpty(cookies)) {
huc.setRequestProperty("cookie", "JSESSIONID=" + cookies);
}

// 处理结果
byte[] jsonBytes =  connection(huc, sendByte, mode);
Object[] result = new Object[3];
result[0] = jsonBytes;
result[1] = getCookies(huc);
result[2]=huc.getContentType();
return result;
}

#2


webservice 比较合适 ,用啥都麻烦。

#3


你也可以看看mina框架,是通过socket实现的 。
根据你的需求也得来回调用。
熟悉什么技术就用什么技术,实现功能最重要。

#4


web service没问题,也可以用RMI实现远程接口调用,这些都是比较成熟的远程调用技术,都可以实现。

#5


你这个是双向通信了,可以考虑直接用socket

#6


如果是异步实现可以考虑用RabbitM'Q

#7


http通讯也行

#8


http webservice rmi

#9


一个webservice就够了,还有可以用activateMQ

#1


当然可以用webservice,也可以直接使用HttpURLConnection,比如
/***
 * @return :response result;session id;contentType,such as "image/gif;charset=UTF-8"
 */
public Object[] commResult(String urlStr, String sendData, String contentType, String cookies) throws Exception {
// URL url = new URL(urlString);
URL url = new URL(urlStr);
HttpURLConnection huc = (HttpURLConnection) url.openConnection();

int length = 0;
byte[] sendByte = null;
String mode = "GET";
if (sendData != null && !sendData.equals("")) {
sendByte = sendData.getBytes(encode);
length = sendByte.length;
mode = "POST";
}
setHeader(huc, length, mode, contentType);
// 是否输出数据
huc.setDoOutput(true);
// 是否输入数据
huc.setDoInput(true);
// 是否缓存数据,post方法不需要缓存数据
huc.setUseCaches(false);

// 设置cookies
if (!NullUtil.isNullOrEmpty(cookies)) {
huc.setRequestProperty("cookie", "JSESSIONID=" + cookies);
}

// 处理结果
byte[] jsonBytes =  connection(huc, sendByte, mode);
Object[] result = new Object[3];
result[0] = jsonBytes;
result[1] = getCookies(huc);
result[2]=huc.getContentType();
return result;
}

#2


webservice 比较合适 ,用啥都麻烦。

#3


你也可以看看mina框架,是通过socket实现的 。
根据你的需求也得来回调用。
熟悉什么技术就用什么技术,实现功能最重要。

#4


web service没问题,也可以用RMI实现远程接口调用,这些都是比较成熟的远程调用技术,都可以实现。

#5


你这个是双向通信了,可以考虑直接用socket

#6


如果是异步实现可以考虑用RabbitM'Q

#7


http通讯也行

#8


http webservice rmi

#9


一个webservice就够了,还有可以用activateMQ