Java 1.4.2 AS400 上 getOutputStream() 中的 IOException

Java 1.4.2 IOException in getOutputStream() on AS400

我在使用 Java 1.4.2 的 AS400 系统下工作,以获得 XML 但是当我使用 getOutputStream() 执行请求时,我得到了一个 IOException 并且只有消息 returns 提供商的域。

这是我的部分代码:

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();
  }

消息错误为"ERROR IOException: test.example.it"。

我在装有 Windows XP、Netbeans 4.1、Java 1.4.2 Build 19(在 AS400 中相同)的计算机上测试了我的代码,我得到了 XML 没有问题。

我可以将我的代码编译到 AS400 中,但是当我在 QSHELL 中 运行 class 或使用 RPG 程序时,我得到了错误。

有人知道我还必须做什么或为什么会出现此错误吗?

谢谢!

编辑:

它是一个 POST 方法,实际上我在代码中包含了 setDoInput 和 setDoOutput。

现在打印我得到的异常:

java.net.UnknownHostException: test.example.it

ERROR IOException: test.example.it

编辑:

看起来 nslookup 没有解析域,但之后我重试使用 IP,现在我有这个错误...

java.net.SocketException: The value specified for the argument is not correct.
ERROR IOException: The value specified for the argument is not correct.

我认为这可能是 AS400 安全问题,我应该将此域添加到列表中还是编辑系统值?

编辑:

使用 TCPCFG 然后使用选项 10,在这个 table 主机中我没有域 test.example.it,我想我需要添加这个域和 IP,不是吗?

编辑:

版本为V6R1M0。我添加了 IP(选项 10。使用 TCP/IP 主机 table 条目),现在 AS400 解析了域,但现在我遇到了新问题。

java.net.ConnectException: A remote host refused an attempted connect operation.

在选项 12 中,我在所有选项中都有 *SAME。对于选项 1,以下内容:

 Internet         Subnet              Line      Line  Opt  Address          Mask             Description  Type 

 127.0.0.1        255.0.0.0        *LOOPBACK    *NONE
 151.208.xxx.xx   255.255.255.0    ETHLINE      *ELAN

我在群里找到了这个:"Is the 8080 port on the 400. Is the 400 setup to accept 8080 traffic via SSL".

如何让 400 接受流量?

最后我解决了我的问题,在主机 table 中添加了 IP 和域(正如我在编辑中提到的)但这是另一个问题。

提供商给了我一个用于请求的IP和另外两个用于响应的IP,我在主机table中添加了具有相同域的三个IP。我删除了三个 IP 中的两个,然后我尝试仅使用该 IP 进行请求并且成功了!

现在的问题是通过Java请求太慢了!但那是另一个话题。非常感谢大家。