私はこれについて多くのフォーラム投稿を見て、いくつかの提案を試みましたが、それでも私はこれを解決することができません。このコードは私のホームシステムではうまく機能しますが、組織のファイアウォールの背後で例外メッセージが表示されます。
NTLM @ proxy.tcs.com:8080で使用できる資格情報がありません
これが私が使っている方法です
private static void UseAbdera() throws IOException
{
try
{
Abdera abdera = new Abdera();
AbderaClient client = new AbderaClient(abdera);
client.setProxy("OrgProxyHost", 8080);
NTLMAuthenticatorClass authenticator = new NTLMAuthenticatorClass("username", "password");
Authenticator.setDefault(authenticator);
NTCredentials ntcr = new NTCredentials("username", "password", "greenhouse.lotus.com", "India.TCS.com");
client.addCredentials("https://greenhouse.lotus.com", null, null, ntcr);
ClientResponse resp = client.get("https://greenhouse.lotus.com/forums/atom/service");
org.apache.abdera.model.Document<org.apache.abdera.model.Service> service_doc = resp.getDocument();
service_doc.writeTo(System.out);
System.out.println("\n");
org.apache.abdera.model.Service service = service_doc.getRoot();
org.apache.abdera.model.Collection collection = service.getCollection("Forums Feed Collection", "My Topics");
String coll_uri = collection.getResolvedHref().toASCIIString();
org.apache.abdera.model.Entry entry = abdera.newEntry();
entry.setTitle("TEST REPLY !");
// Mark private
resp = client.post(coll_uri, entry);
switch (resp.getType())
{
case SUCCESS:
String location = resp.getLocation().toASCIIString();
System.out.println("New entry created at: " + location);
break;
default:
System.out.println("Error: " + resp.getStatusText());
}
} catch (URISyntaxException ex)
{
Logger.getLogger(IBMConnectionMessages_ForumPractice.class.getName()).log(Level.SEVERE, null, ex);
}
}
これは私が取得する例外ログです
org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme INFO:ntlm認証スキームが選択されました2012年7月6日10:42:03 AM org.apache.commons.httpclient.HttpMethodDirector processProxyAuthChallenge INFO:NTLMに使用できる資格情報がありません@orgProxyHost:8080例外スレッド"main"java.lang.IllegalStateException at org.apache.abdera.protocol.client.CommonsResponse。(CommonsResponse.java:44)at org.apache.abdera.protocol.client.AbderaClient.execute(AbderaClient.java:692 )org.apache.abdera.protocol.client.AbderaClient.get(AbderaClient.java:216)at org.apache.abdera.protocol.client.AbderaClient.get(AbderaClient.java:404)at IBMConnectionMessages_ForumPractice.UseAbdera(IBMConnectionMessages_Forum java:231)IBMConnectionMessages_ForumPracticeで。main(IBMConnectionMessages_ForumPractice.java:45)
助けてください、私はそれに半日を費やしました。