2014-02-18 2 views
0

im пытается создать строку Nonce для использования в моем запросе на мыло. Ive нашел некоторые функции jboss и импортировал двоичные файлы в папку/lib.Jmeter - Создание Nonce с jboss libs

Мой код выглядит следующим образом:

import org.jboss.ws.extensions.security.nonce.DefaultNonceGenerator; 
import org.jboss.util.Base64; 

//Generate Nonce security key 
DefaultNonceGenerator nonceGen = new DefaultNonceGenerator(); 
String Nonce = nonceGen.generateNonce(); 

vars.put("Nonce", Nonce); 

Однако им получать эти ошибки в jmeter.log:

2014/02/18 10:02:37 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method:  eval Sourced file: inline evaluation of: ``import org.jboss.ws.extensions.security.nonce.DefaultNonceGenerator; import org. . . . '' : Typed variable declaration : Method Invocation nonceGen.generateNonce 
2014/02/18 10:02:37 WARN - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.jboss.ws.extensions.security.nonce.DefaultNonceGenerator; import org. . . . '' : Typed variable declaration : Method Invocation nonceGen.generateNonce 

Каждый знает, что им делать неправильно? Im в убыток :(

ответ

1


Я думаю, вы должны сначала проверить все необходимые библиотеки и зависимости присутствуют в JMeter выполнения (Lib/внутр).
Затем перезагрузите и попробуйте,

Если вы все еще получаете ошибка, попробуйте сделать свой собственный файл банка, используя следующий код,

Вместо org.jboss.util.Base64 класса вы можете использовать this Base64 jar file, поместите файл банки и Base64 jar в бен/папку доба и перезапустить Jmet эр

import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import org.jboss.util.Base64;

public class MyDefaultNonceGenerator  
    { 
    public String generateNonce() 
    { 
     try 
     { 
      SecureRandom pseudoRng; 
      pseudoRng = SecureRandom.getInstance("SHAPRNG"); 
      pseudoRng.setSeed(System.currentTimeMillis()); 
      byte[] bytes = new byte[]; 
      pseudoRng.nextBytes(bytes); 
      return Base.encodeBytes(bytes); 
     } 
     catch (NoSuchAlgorithmException e) 
     {return "Null";} 
    } 

    } 

Вы можете получить доступ к этой банку файл из BeanShell препроцессора используя следующий сценарий

var nonce= new yourpackage.MyDefaultNonceGenerator().generateNonce() vars.put("nonce",nonce);



+0

см [это ссылка] (HTTP: // Ihar der.sourceforge.net/current/java/base64/) для получения дополнительной информации –

+0

Спасибо, оказалось, что jmeter allready имеет встроенную библиотеку, называемую commons-codec-1.8.jar, которая содержит функцию кодирования для Base64. Поэтому я решил это, используя: String Nonce = new String (Base64.encodeBase64 (DateSeedString.getBytes («US-ASCII»))); vars.put («Nonce», Nonce); – Demoric