Jmeter-使用jboss libs创建Nonce

Jmeter-使用jboss libs创建Nonce,jboss,jmeter,nonce,Jboss,Jmeter,Nonce,我正在尝试生成一个Nonce字符串以在soap请求中使用。我找到了一些jboss函数,并将二进制文件导入/lib文件夹 我的代码如下所示: import org.jboss.ws.extensions.security.nonce.DefaultNonceGenerator; import org.jboss.util.Base64; //Generate Nonce security key DefaultNonceGenerator nonceGen = new DefaultNonceG

我正在尝试生成一个Nonce字符串以在soap请求中使用。我找到了一些jboss函数,并将二进制文件导入/lib文件夹

我的代码如下所示:

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 
有人知道我做错了什么吗?我不知所措:(


我认为您需要首先检查Jmeter运行时(lib/ext)中是否存在所有必需的库和依赖项。
然后重新启动并尝试

如果仍然出现错误,请尝试使用以下代码创建自己的jar文件

不要使用org.jboss.util.Base64类,而是将jar文件放入bin/ext文件夹中,然后重新启动Jmeter

import java.security.NoSuchAlgorithmException;
导入java.security.SecureRandom;
导入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预处理器访问此jar文件

var nonce=new yourpackage.mydefaultnonecogenerator().generateOnce()
变量put(“nonce”,nonce);




请参考更多信息谢谢,事实证明jmeter allready有一个名为commons-codec-1.8.jar的内置库,其中包含Base64的编码器函数。因此,我使用以下方法解决了它:String Nonce=new String(Base64.encodeBase64(DateSeedString.getBytes(“US-ASCII”);vars.put(“Nonce”,Nonce);