アプリケーションからWebサービスを呼び出そうとしています。私のシステムはファイアウォールで保護されており、プロキシを使用して外部URL/インターネットアクセスにアクセスしています。アプリケーションはJBossEAP5.1サーバーで実行されています。アプリケーションはIO例外でサービスURLへの書き込みに失敗します:'メッセージを送信できませんでした'。
しかし、IE / FirefoxでサービスURLにアクセスしようとすると、開いています。ブラウザから受け取ったXML応答には、一般的なエラー('無効な要求パラメータ...')が示されていますが、これは非常に明白です。ブラウザから適切なリクエストXMLを送信していないためです。
私はこの格差に本当に混乱しています。以前は、JBossが標準のWindowsネットワーク設定を取得すると信じていましたが、私の場合はそうではありません。
私のコードは次のとおりです。
String strUrl = "http://theurlgoeshere";
String requestXml = "<request></request>";
String wsResponse="";
SOAPConnection conn = null;
try {
MessageFactory msgFac = MessageFactory.newInstance();
MimeHeaders mh = new MimeHeaders();
mh.setHeader("Content-Type", "text/xml; charset=UTF-8");
log.info("Request Xml:" + requestXml );
InputStream is = new ByteArrayInputStream(requestXml.getBytes("UTF-8"));
SOAPMessage reqMsg = msgFac.createMessage(mh, is);
SOAPConnectionFactory conFac = SOAPConnectionFactory.newInstance();
conn = conFac.createConnection();
SOAPMessage repMsg = conn.call(reqMsg, strUrl);
ByteArrayOutputStream out = new ByteArrayOutputStream();
repMsg.writeTo(out);
wsResponse = new String(out.toByteArray());
}
catch (Exception e) {
e.printStackTrace();
}