xagent

时间:2017-02-28 09:22:30

标签: ssl amazon-s3 xpages

我正在开发一个应用程序,其中大部分工作与aws S3交互。 初步情况: Domino:版本9.0.1FP6。 使用aws实用程序在xpages上的应用程序与readBucket,downloadFile,createBucket等的典型功能完美配合。 对于应用需求,由于它的重量,我需要分离它的逻辑并尝试三种方法进行分离。

  1. 在另一个数据库中,代理从主应用程序接收docID并执行S3所请求的操作的顺序。该机制运行良好,但内存消耗是不可接受的,因此被丢弃。
  2. 在另一个新的数据库中,需要使用相同的库和类来关注基于How to schedule an Xagent from a Domino Java agent?代理的XAgent,但访问不是指向Per Henrik Lausten的ssl。它运行正常,但是如果我们加载s3就会出错。
  3. 控制台Java:

    • 启动http://localhost/proves \ s3.nsf / demo.xsp

    • java.lang.NullPointerException - >在sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:727)

    控制台Domino

    • HTTP JVM:demo.xsp - > beforePageLoad --->你好Word
    • HTTP JVM:CLFAD0211E:抛出异常。请参阅error-log-0.xml

    错误日志-0.xml

    • 服务请求的异常:/proves/s3.nsf/demo.xsp - HTTP代码:500

    IBM_TECHNICAL_SUPPORT \ xpages_exc.log

    • java.lang.NoClassDefFoundError:com.amazonaws.auth.AWSCredentials

    我认为问题可能在于使用这种机制,因为它不安全,如果从浏览器访问demo.xsp,它将运行整个加载的aws xon默认凭据。

    1. 我根据Devin Olson的博客文章Scheduled Xagents测试另一个基于SSL的xagent,但抛出错误:
    2. 控制台Java:

      • 异常:javax.net.ssl.SSLHandshakeException:com.ibm.jsse2.util.j:找不到可信证书

      应用程序逻辑的分离方法是否正确? 关于为什么SSL的第三个程序失败的任何建议?

      提前致谢

      编辑:您好,代码XAgent(代理属性安全标签= 3)

      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 = "localhost"; 
          static final String urlFilepath = "/proves/s3.nsf/demo.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
                  System.out.println("Exception:" + e); 
              } 
          } 
      } 
      

      代码demo.xsp

      <?xml version="1.0" encoding="UTF-8"?>
      <xp:view xmlns:xp="http://www.ibm.com/xsp/core">
          <xp:this.beforePageLoad><![CDATA[#{javascript:
              print("demo.xsp --> beforePageLoad ---> Hello Word");
              var a = new Array();
              a[0] = "mybucket-proves";
              a[1] = @UserName(); 
              var s3 = new  S3(); 
              var vector:java.util.Vector = s3.mainReadBucket(a); 
              var i=0;
              for ( i = 0; i < vector.size(); i++) {
                  print("Value:" + vector.get(i));
              }
          }]]></xp:this.beforePageLoad>
          <xp:label value="Demo" id="label1"></xp:label>
      </xp:view>
      

      新测试: 虽然这两个bd驻留在同一台服务器上,但是如果这是故障,我在JVM中有一个SSL证书颁发机构,但它仍然会给出相同的错误。 SSLHandshakeException:com.ibm.jsse2.util.j:没有可信证书。

      注意:我已在主应用程序中测试了aws库正常工作,此代理程序和demo.xsp页面并遵循相同的错误。

      谢谢

0 个答案:

没有答案