Java Domino代理在Notes客户机中运行时出现问题-在服务器上工作正常
我有一个java代理,它使用jsoup发出http请求,当我从服务器控制台手动触发它时,这个代理可以正常工作。但当我在客户端上运行它时,会给出一个错误(右键单击代理并运行)Java Domino代理在Notes客户机中运行时出现问题-在服务器上工作正常,java,security,xpages,lotus-domino,agent,Java,Security,Xpages,Lotus Domino,Agent,我有一个java代理,它使用jsoup发出http请求,当我从服务器控制台手动触发它时,这个代理可以正常工作。但当我在客户端上运行它时,会给出一个错误(右键单击代理并运行) 代理设置为选项2。允许受限操作,并设置为“操作菜单选择”和目标“数据库中的所有文档” 我在服务器和客户端的java.policy文件中设置了相同的安全设置。 我还尝试在带有“标准”java.policy文件的服务器上运行代理,这也起到了作用,因此问题似乎与java.policy文件无关 这是我在notes客户端(v9.0
- 代理设置为选项2。允许受限操作,并设置为“操作菜单选择”和目标“数据库中的所有文档”
- 我在服务器和客户端的java.policy文件中设置了相同的安全设置。 我还尝试在带有“标准”java.policy文件的服务器上运行代理,这也起到了作用,因此问题似乎与java.policy文件无关
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = session.getCurrentDatabase();
lotus.domino.Document d = db.getView("inbox").getFirstDocument();
String url = d.getItemValueString("Subject");
Document x = Jsoup.connect(url).userAgent("Mozilla").get();
Elements p = x.select("p");
RichTextItem rt = (RichTextItem) d.getFirstItem("Body");
rt.appendText(p.text());
d.replaceItemValue("Processed", "1");
d.save();
} catch(Exception e) {
e.printStackTrace();
}
}
}
如何让代理在本地Notes客户端上运行?请阅读:这为我解决了问题 在多次重新启动和切换设置,以及多次拉扯头发之后,我能够找到一组可以导致问题或防止问题的步骤。要使代码正常工作,请执行以下操作:
我知道不是服务器上的所有库都可以从客户端获得。我的Xpage webservice hack可以从服务器获得,但不能从客户端获得。您可以检查响应是否正常(使用.method和.response而不是.get())。似乎它没有有效的响应,但它有响应代码。有时这是代理问题,它返回302,但没有响应(您是否支持代理?)谢谢Serdar,我的网络中没有代理。我不知道如何获得响应,我只知道org.jsoup.helper.HttpConnection$Response@13491349Does本地计算机安装了防火墙或任何可能干扰代理连接能力的安全软件?您是否尝试过使用java.net.HttpUrlConnection类directly?虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会无效。这似乎是对问题和解决方法的描述,而不是对原问题中描述的问题的程序修复@beresfordt这个问题提出了症状。我发现这个问题是因为我也有症状,不知道这个UI行为,因此我找到了一个解决方案。这似乎也是唯一可用的解决方案。答案不必在所有情况下都是编程的。这个问题是Domino Designer中的UI问题,IBM必须重新发布e解决该问题的修复方法。
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = session.getCurrentDatabase();
lotus.domino.Document d = db.getView("inbox").getFirstDocument();
String url = d.getItemValueString("Subject");
Document x = Jsoup.connect(url).userAgent("Mozilla").get();
Elements p = x.select("p");
RichTextItem rt = (RichTextItem) d.getFirstItem("Body");
rt.appendText(p.text());
d.replaceItemValue("Processed", "1");
d.save();
} catch(Exception e) {
e.printStackTrace();
}