スケジュールされたJavaエージェントからトリガすることでXagentをスケジュールどおりに実行しようとしています。Domino JavaエージェントからXagentをスケジュールするにはどうすればよいですか?
次は、単に私にメールを送り、私のxagentmail.xspのためのコードです:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="false">
<xp:this.beforePageLoad><![CDATA[#{javascript:
// test send mail
doc = database.createDocument() ;
doc.replaceItemValue("Form", "memo");
doc.replaceItemValue("Subject", " from xagentmail.xsp");
doc.replaceItemValue("SendTo", "[email protected]");
doc.send();
}]]></xp:this.beforePageLoad>
</xp:view>
デヴィン・オルソンさんのブログ、Scheduled Xagentsで説明したSSL暗号化接続のアプローチを使用して、私は次のスケジュールのDominoのJavaを作成しましたエージェント:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import javax.net.ssl.SSLSocketFactory;
import lotus.domino.AgentBase;
public class JavaAgent extends AgentBase {
// Change these settings below to your setup as required.
static final String hostName = "server1.testdomain.com";
static final String urlFilepath = "/test/poidemo.nsf/xagentmail.xsp";
static final int sslPort = 443;
public void NotesMain() {
try {
final SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
final Socket socket = factory.createSocket(JavaAgent.hostName, JavaAgent.sslPort);
final BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
final BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
final StringBuilder sb = new StringBuilder();
sb.append("GET ");
sb.append(JavaAgent.urlFilepath);
sb.append(" HTTP/1.1\n");
final String command = sb.toString();
sb.setLength(0);
sb.append("Host: ");
sb.append(JavaAgent.hostName);
sb.append("\n\n");
final String hostinfo = sb.toString();
out.write(command);
out.write(hostinfo);
out.flush();
in.close();
out.close();
socket.close();
} catch (final Exception e) {
// YOUR_EXCEPTION_HANDLING_CODE
}
}
}
xagentmail.xspにブラウザのURLを入力すると、期待どおりのメールが届きます。
しかし、私のスケジュールされたJavaエージェントは、Xagentを起動してメールを送信していません。
私は、エージェントとxagentの両方を使用して、アプリケーションに対してReaderへの匿名アクセスを設定しました。私はまた、サーバー上の制限付きおよび制限なしの特権を持っています。
アイデア?
サーバーコンソールからエージェントを実行するとどうなりますか? – xpagesbeast
(1,2,3)でエージェントを実行しているセキュリティレベルは? –
実際には、現在、顧客の開発サーバーでブラインドが実行されています。コンソールアクセスはオプションではありません。テストサーバーに移動する必要があります。 –