예제 #1
0
  private static void testResponse() {
    Node epp;
    EppResponse res;
    EppResponse newres;
    EppResult result;
    EppTransactionId xid;

    res = new EppResponse();
    result = new EppResult(EppError.CODE_NO_ERROR, EppError.TEXT_NO_ERROR);
    /*
    		res.addResult(result);

    		result = new EppResult(EppError.CODE_COMMAND_SYNTAX_ERROR,
    		                       EppError.TEXT_COMMAND_SYNTAX_ERROR);
    */
    result.addValue("Value 1");
    result.addValue("Value 2");
    result.addValue("Value 3");
    result.addValue("Value 4");
    result.addValue(new EppValueReason("Value 5", "Reason 5"));
    result.addValue("Value 6");
    result.addValue(new EppValueReason("Value 7", "Reason 7"));
    res.addResult(result);
    xid = new EppTransactionId("ABC-DEF-12345", "SERVER-ID-9999");
    res.setTransactionId(xid);
    res.setMessageId("ABC123XYZ");
    res.setMessageQueued(99);
    res.setMessageQueueUpdated(Calendar.getInstance());

    EppSecDnsDsData ns0 = new EppSecDnsDsData();
    EppSecDnsDsData ns1 = new EppSecDnsDsData();

    ns0.setKeyTag(12345);
    ns0.setAlgorithm(3); // RSA/SHA
    ns0.setDigestType(1); // SHA-1
    ns0.setDigestString("ABCDEF0123456789");

    ns1.setKeyTag(54321);
    ns1.setAlgorithm(3); // RSA/SHA
    ns1.setDigestType(1); // SHA-1
    ns1.setDigestString("0123456789ABCDEF");

    EppSecDnsKeyData kd_inner = new EppSecDnsKeyData();
    EppSecDnsKeyData kd_outer = new EppSecDnsKeyData();

    kd_inner.setFlags(2);
    kd_outer.setFlags(5);

    kd_inner.setProtocol(202);
    kd_outer.setProtocol(205);

    kd_inner.setAlgorithm(1);
    kd_outer.setAlgorithm(3);

    kd_inner.setPublicKey("DEADBEEF");
    kd_outer.setPublicKey("FEED2012");

    ns0.setKeyData(kd_inner);

    EppResponseDataInfoSecDns secdnsinfo = new EppResponseDataInfoSecDns();
    secdnsinfo.add(ns0);
    secdnsinfo.add(ns1);
    /*
    		secdnsinfo.add(kd_outer);
    */
    secdnsinfo.setMaxSigLife(1000);

    res.addExtension(secdnsinfo);

    System.out.println(res);

    EppParser parser = new EppParser(res.toString());
    if (parser.hasError()) {
      System.out.println(parser.getResult());
      System.exit(1);
    }

    epp = parser.getRootNode();
    newres = (EppResponse) EppResponse.fromXML(epp);
    if (newres == null) {
      System.out.println("Error in fromXML");
    }
    System.out.println(newres);
  }
 /**
  * Creates an <code>EppCommandRenewXriName</code> object with a client transaction id associated
  * with the operation. The current date of expiration would be the current date.
  */
 public EppCommandRenewXriName(String iname, String xid) {
   this(iname, Calendar.getInstance(), null, xid);
 }
  @Override
  public HashSet<ScoredAnnotation> solveSa2W(String text) throws AnnotationException {
    HashSet<ScoredAnnotation> res;
    try {
      res = new HashSet<ScoredAnnotation>();
      lastTime = Calendar.getInstance().getTimeInMillis();

      URL wikiApi = new URL(url);
      String parameters =
          "references=true&repeatMode=all&minProbability=0.0&source="
              + URLEncoder.encode(text, "UTF-8");
      HttpURLConnection slConnection = (HttpURLConnection) wikiApi.openConnection();
      slConnection.setRequestProperty("accept", "text/xml");
      slConnection.setDoOutput(true);
      slConnection.setDoInput(true);
      slConnection.setRequestMethod("POST");
      slConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
      slConnection.setRequestProperty("charset", "utf-8");
      slConnection.setRequestProperty(
          "Content-Length", "" + Integer.toString(parameters.getBytes().length));
      slConnection.setUseCaches(false);

      DataOutputStream wr = new DataOutputStream(slConnection.getOutputStream());
      wr.writeBytes(parameters);
      wr.flush();
      wr.close();
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder = factory.newDocumentBuilder();
      Document doc = builder.parse(slConnection.getInputStream());

      /*			URL wikiApi = new URL(url+"?references=true&repeatMode=all&minProbability=0.0&source="+URLEncoder.encode(text, "UTF-8"));
      			URLConnection wikiConnection = wikiApi.openConnection();
      			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      			DocumentBuilder builder = factory.newDocumentBuilder();
      			Document doc = builder.parse(wikiConnection.getInputStream());
      */

      lastTime = Calendar.getInstance().getTimeInMillis() - lastTime;

      XPathFactory xPathfactory = XPathFactory.newInstance();
      XPath xpath = xPathfactory.newXPath();
      XPathExpression idExpr = xpath.compile("//detectedTopic/@id");
      XPathExpression weightExpr = xpath.compile("//detectedTopic/@weight");
      XPathExpression referenceExpr = xpath.compile("//detectedTopic/references");

      NodeList ids = (NodeList) idExpr.evaluate(doc, XPathConstants.NODESET);
      NodeList weights = (NodeList) weightExpr.evaluate(doc, XPathConstants.NODESET);
      NodeList references = (NodeList) referenceExpr.evaluate(doc, XPathConstants.NODESET);

      for (int i = 0; i < weights.getLength(); i++) {
        if (weights.item(i).getNodeType() != Node.TEXT_NODE) {
          int id = Integer.parseInt(ids.item(i).getNodeValue());
          float weight = Float.parseFloat(weights.item(i).getNodeValue());
          //					System.out.println("ID="+ids.item(i).getNodeValue()+" weight="+weight);
          XPathExpression startExpr =
              xpath.compile("//detectedTopic[@id=" + id + "]/references/reference/@start");
          XPathExpression endExpr =
              xpath.compile("//detectedTopic[@id=" + id + "]/references/reference/@end");
          NodeList starts =
              (NodeList) startExpr.evaluate(references.item(i), XPathConstants.NODESET);
          NodeList ends = (NodeList) endExpr.evaluate(references.item(i), XPathConstants.NODESET);
          for (int j = 0; j < starts.getLength(); j++) {
            int start = Integer.parseInt(starts.item(j).getNodeValue());
            int end = Integer.parseInt(ends.item(j).getNodeValue());
            int len = end - start;
            res.add(new ScoredAnnotation(start, len, id, weight));
          }
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
      throw new AnnotationException(
          "An error occurred while querying Wikipedia Miner API. Message: " + e.getMessage());
    }
    return res;
  }