我正在使用Java 1.4.2在AS400系统下工作,以获取XML但是当我使用getOutputStream()执行请求时,我收到了IOException,并且该消息只返回提供者的域。
这是我的代码的一部分:
onCreate
消息错误是“ERROR IOException:test.example.it”。
我使用Windows XP,Netbeans 4.1,Java 1.4.2 Build 19(AS400中的相同)在计算机上测试了我的代码,并且我没有遇到任何问题。
我可以将我的代码编译到AS400中,但是当我在QSHELL中运行该类或使用RPG程序时,我会收到错误。
有人知道我还有什么需要做或为什么会收到这个错误?
谢谢!
编辑:
它是一个POST方法,实际上我在代码中包含了setDoInput和setDoOutput。
现在打印异常我得到了这个:
java.net.UnknownHostException:test.example.it
错误IOException:test.example.it
编辑:
看起来nslookup无法解析域但在此之后我重试使用IP,现在我有这个错误......
java.net.SocketException:为参数指定的值不正确。
ERROR IOException:为参数指定的值不正确。
我认为AS400安全性存在问题,我应该在列表中添加此域还是编辑系统值?
编辑:
使用TCPCFG然后选项10,在这个主机表中我没有域test.example.it,我想我需要添加这个域和IP,不是吗?
编辑:
版本为V6R1M0。我添加了IP(选项10.使用TCP / IP主机表条目),现在AS400解析了域,但现在我遇到了新问题。
java.net.ConnectException:远程主机拒绝尝试连接操作。
在选项12中,我在所有选项中都有* SAME。对于选项1,以下内容:
try { url = new URL("https://test.example.it/27/xml/"); //Example URL... } catch(MalformedURLException exMAL) { return exMAL.getMessage(); } //Set parameters LinkedHashMap params = new LinkedHashMap(); params.put("id", id); params.put("password", password); ... params.put("description", description); String data = ""; Set set = params.entrySet(); Iterator i = set.iterator(); //Create URL of parameters while(i.hasNext()){ if(data != ""){ data += "&"; } Map.Entry me = (Map.Entry)i.next(); data += me.getKey() + "=" + me.getValue(); } try { //Create connection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setDoInput(true); conn.setDoOutput(true); conn.setUseCaches(false); //Do request OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); //Error here wr.write(data); wr.flush(); //Get resource InputStream is = conn.getInputStream(); outputData = readAll(is); } catch (IOException ioEx) { return "ERROR IOException: " + ioEx.getMessage(); }
我在一个群组中发现:“是400上的8080端口.400设置是否通过SSL接受8080流量”。
我怎样才能让400接受流量?
答案 0 :(得分:0)
最后我解决了我的问题,在主机表中添加了IP和域(正如我在编辑中提到的那样),但这是另一个问题。
提供商为我提供了一个用于请求的IP和两个用于响应的IP,我在主机表中添加了三个具有相同域的IP。我删除了三个IP中的两个,然后我尝试仅使用IP请求它并且它有效!
现在问题是通过Java的请求太慢了!但这是另一个话题。非常感谢你们。