先祝大家新年快乐,我有下面这样一个问题。
在用struts1做一个系统的时候,要访问另一个系统的DB,那个系统是另一个公司做的,他们用的是不同的web server,DB也是他们自己的。我需要更新他们那边DB里的一些字段,可是他们并不允许我直接去访问他们的DB,而是给了我一个接口,说是传给它固定格式的参数,就可以调用他们那边的一个什么东西,就可以更新了。
他们给的格式是这样的:
http://xxx.xxx.xxx.xx/xx/xxxx=xxx&xxx=<参数1>&xxx=<参数2>
他们说让我直接访问这个格式的东西就可以完成更新了,想问问大家,这是一个什么东西呢,是那个URL下的一个可执行文件么?而且我在我的action里面怎么使用这个东西,又如何接受更新是否成功的返回值呢?大家有用过类似的这种写法的么,麻烦能指点一下,有类似代码最好。看在我大过年还在加班的份上,帮个忙吧,谢谢了。
在用struts1做一个系统的时候,要访问另一个系统的DB,那个系统是另一个公司做的,他们用的是不同的web server,DB也是他们自己的。我需要更新他们那边DB里的一些字段,可是他们并不允许我直接去访问他们的DB,而是给了我一个接口,说是传给它固定格式的参数,就可以调用他们那边的一个什么东西,就可以更新了。
他们给的格式是这样的:
http://xxx.xxx.xxx.xx/xx/xxxx=xxx&xxx=<参数1>&xxx=<参数2>
他们说让我直接访问这个格式的东西就可以完成更新了,想问问大家,这是一个什么东西呢,是那个URL下的一个可执行文件么?而且我在我的action里面怎么使用这个东西,又如何接受更新是否成功的返回值呢?大家有用过类似的这种写法的么,麻烦能指点一下,有类似代码最好。看在我大过年还在加班的份上,帮个忙吧,谢谢了。
一个意思,后面&xxx= <参数1>&xxx= <参数2> 是你需要更新的数据,如name="test"&
class="test"。
String result = new ActionForward(url);result是返回值,是这样的么?
这怎么看都不对啊,哪位明白人快来帮帮忙吧
试试直接把他给的这个地址直接在浏览器中打开,看看显示什么,如果确实是你要的东西,就用ajax的方式加载,然后用js的方式获取里面需要的数据,再提交到后台,就能抓到了。不过这个的可能性极小。
这个我也不懂
貌似你只能用这个API执行一些命令。 action 里面进行数据库操作的时候,调用这个接口就好: xxx = "http://xxx.xxx.xxx.xx/xx/xxxx=xxx&xxx="+ <参数1>+"&xxx="+ <参数2> 然后就像 URL 一样直接访问这个网络就好。
采用这种方式的目的是通过url的方式,使两个系统联系起来,你不必知道那个系统的内部实现,调用接口就可以完成你系统的功能了。
一个意思,后面&xxx= <参数1>&xxx= <参数2> 是你需要更新的数据,如name="test"&
class="test"。
我感觉可能是rmi吧,不过不管怎么样这周会有个结果,到时候把结果贴出来再结帖。
把客户端代码贴出来大家参考一下import java.net.*;
import java.io.*;public class HelloWorldGet {
public static void main(String[] args) {
try {
// URL object 生成
URL helloURL =
new URL("http://xxx.xxx.xxx.xx/xx/xxxx=xxx&xxx= <参数1>&xxx= <参数2>");
BufferedReader in = new BufferedReader(
new InputStreamReader(
helloURL.openStream())); // 逐行读入
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这样可以读取目标页面的out.println输出流来获得参数。
这样是基本实现了,但是后来讨论了一下,感觉上这样做在安全上存在隐患,任何知道这个URL的人,仅仅是通过这个URL就可以直接对DB进行更新了。
所以现在决定还要用LDAP这个东西,这个怎么用我还不太清楚,等弄清楚了,在贴出了。另外说一句,其实这个问题BearKin在9楼就已经明确的给出答案了,但是我太菜,没有领会。
先感谢高手们的回答,但也觉得有时候高手们是不是都太忙了,给出的答案都太简略了,真心希望
高手们回答问题时,能再略微详细一些,有些提示性的代码就更好了,哪怕两三行都行,下面的就能自己google了。
结贴,再次感谢。