Выполнить Java-метод из проекта SoapUI - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть Java проект и тестовый класс с методом, который должен быть выполнен из сценария Groovy в SoapUI.Метод для выполнения:

@Test
public void testPkcs12() throws IOException {
    try (Pkcs12SignatureToken signatureToken = new Pkcs12SignatureToken("src/test/resources/user_a_rsa.p12",
            new PasswordProtection("password".toCharArray()))) {
        assertNotNull(signatureToken);

        List<DSSPrivateKeyEntry> keys = signatureToken.getKeys();
        assertFalse(keys.isEmpty());

        KSPrivateKeyEntry dssPrivateKeyEntry = (KSPrivateKeyEntry) keys.get(0);
        assertNotNull(dssPrivateKeyEntry);
        assertNotNull(dssPrivateKeyEntry.getAlias());

        DSSPrivateKeyEntry entry = signatureToken.getKey(dssPrivateKeyEntry.getAlias(), new PasswordProtection("password".toCharArray()));
        assertNotNull(entry);
        assertNotNull(entry.getCertificate());
        assertNotNull(entry.getCertificateChain());
        assertNotNull(entry.getEncryptionAlgorithm());

        ToBeSigned toBeSigned = new ToBeSigned("Hello world".getBytes("UTF-8"));
        SignatureValue signValue = signatureToken.sign(toBeSigned, DigestAlgorithm.SHA256, entry);
        assertNotNull(signValue);
        assertNotNull(signValue.getAlgorithm());
        assertNotNull(signValue.getValue());

  System.out.println(DatatypeConverter.printBase64Binary(signValue.getValue()));
    }
}

Я сгенерировал jar файл со следующим плагином.

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.1</version>
    <executions>
      <execution>
        <goals>
          <goal>test-jar</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Я вызываю его в SoapUI:

import eu.europa.esig.dss.token.Pkcs12SignatureTokenTest;
log.info Pkcs12SignatureTokenTest.testPkcs12();

Я получаю следующее сообщение об ошибке:

groovy.lang.MissingMethodException: Нет подписи метода: static eu.europa.esig.dss.token.Pkcs12SignatureTokenTest.testPkcs12 () применимо для типов аргументов: ()значения: [] Возможные решения: ошибка testPkcs12 () в строке: 3

1 Ответ

0 голосов
/ 06 февраля 2019

Вы пытаетесь вызвать testPkcs12, как если бы это было статично, но, очевидно, это не так.Просто попробуйте:

import eu.europa.esig.dss.token.Pkcs12SignatureTokenTest
new Pkcs12SignatureTokenTest().testPkcs12()
...