0

我试图生成一个 Nonce 字符串以在我的肥皂请求中使用。我找到了一些 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 

任何人都知道我做错了什么?我不知所措:(

4

1 回答 1

1


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

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

而不是org.jboss.util.Base64类,你可以使用这个 Base64 jar 文件,将你的 jar 文件和 Base64 jar放在bin/ext文件夹中,然后重新启动 Jmeter

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 预处理器访问此 jar 文件

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



于 2014-02-18T12:06:50.147 回答