Cryptography Rampart 1.6.2加载加密属性时出错

Cryptography Rampart 1.6.2加载加密属性时出错,cryptography,rampart,Cryptography,Rampart,Axis2 1.6.3 Rampart 1.6.2可能的错误 使用Rampart1.6.2和axis2 1.6.3时,我发现当尝试从本地磁盘读取的p12创建密钥库时,系统会出错 错误(org.apache.rampart.util.RampartUtil:349)-加载加密属性时出错。 org.apache.ws.security.WSSecurityException:类org.apache.ws.security.components.crypto.Merlin无法创建实例 我试着用源代码调

Axis2 1.6.3 Rampart 1.6.2可能的错误

使用Rampart1.6.2和axis2 1.6.3时,我发现当尝试从本地磁盘读取的p12创建密钥库时,系统会出错

错误(org.apache.rampart.util.RampartUtil:349)-加载加密属性时出错。 org.apache.ws.security.WSSecurityException:类org.apache.ws.security.components.crypto.Merlin无法创建实例

我试着用源代码调试这个库,发现它非常不正常

在我试着用相同的参数运行Merlin并运行之后

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.security.KeyStore;
import org.apache.ws.security.components.crypto.CredentialException;
import org.apache.ws.security.components.crypto.Merlin;
public class TestMerlin {
  public static void main(String[] args) throws FileNotFoundException
  {
    Merlin merlin = new Merlin();
    String storepass = "correctpassword"; 
    String provider = null;
    String type = "PKCS12";
    try {
      ClassLoader loader = ClassLoader.getSystemClassLoader();
      String cert = "C:/cert/certificato.p12";
      InputStream input = merlin.loadInputStream(loader,cert);
      KeyStore ks = merlin.load(input, storepass, provider, type);
    } catch (CredentialException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    System.out.println("end");
  }
}

最后我下载了Rampart 1.6.1的前一个版本,它开始运行了,但是有很多库不兼容。

我不认为
cert
变量应该是一个完整的路径名,类加载器通常与资源一起使用,资源的加载方式与类相同。cert变量是一个完整的路径名,TestMerlin运行正确,并将证书加载到密钥库中。