增加单测 java.lang.ClassCastException: com.sun.crypto.provider.RSACiphe
2017-12-27 16:27
1146 查看
java.lang.ClassCastException: com.sun.crypto.provider.RSACipher cannot be cast to javax.crypto.CipherSpi
at javax.crypto.Cipher.chooseProvider(Cipher.java:845)
at javax.crypto.Cipher.init(Cipher.java:1213)
at javax.crypto.Cipher.init(Cipher.java:1153)
at com.yirendai.datacenter.node.common.CoreRSAUtil.encryptByPublicKey(CoreRSAUtil.java:56)
增加单测,对加密类进行单测时发现以上错误
byte[] keyBytes = Base64.decode(publicKey);
X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
Key publicK = keyFactory.generatePublic(x509KeySpec);
/**
* Created by 老丁 on 2017-12-27 0027.
*/
@RunWith(PowerMockRunner.class)
@PowerMockIgnore({"javax.management.*"})
@PrepareForTest({HttpClient.class, EncryptSupport.class, RedisUtil.class, HttpClientDefault.class})
public class GJJActionImplNewTest {
@Before
public void before() throws Exception {
org.springframework.test.util.ReflectionTestUtils.setField(
action, "GJJ_URL", "22");
}
@Test
public void operate() throws Exception {
when(CoreRSAUtil.encryptByPublicKey(Mockito.anyByte()[], Mockito.anyString())).thenReturn("test");
Assert.assertNotNull(action.operate(info));
}
@Test
public void getTypes() throws Exception {
}
}
ClassCastException 肯定是类型不匹配了,但是功能可以正常执行,那就是类加载器的问题。
网上搜索 增加 @PowerMockIgnore({"javax.management.*","javax.crypto.*"}) 防止加载错类
java.lang.ClassCastException: com.sun.crypto.provider.RSACipher cannot be cast to javax.crypto.CipherSpi
具体细节留下 回头研究下 为什么PowerMockIgnore加载错类
at javax.crypto.Cipher.chooseProvider(Cipher.java:845)
at javax.crypto.Cipher.init(Cipher.java:1213)
at javax.crypto.Cipher.init(Cipher.java:1153)
at com.yirendai.datacenter.node.common.CoreRSAUtil.encryptByPublicKey(CoreRSAUtil.java:56)
增加单测,对加密类进行单测时发现以上错误
byte[] keyBytes = Base64.decode(publicKey);
X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
Key publicK = keyFactory.generatePublic(x509KeySpec);
/**
* Created by 老丁 on 2017-12-27 0027.
*/
@RunWith(PowerMockRunner.class)
@PowerMockIgnore({"javax.management.*"})
@PrepareForTest({HttpClient.class, EncryptSupport.class, RedisUtil.class, HttpClientDefault.class})
public class GJJActionImplNewTest {
@Before
public void before() throws Exception {
org.springframework.test.util.ReflectionTestUtils.setField(
action, "GJJ_URL", "22");
}
@Test
public void operate() throws Exception {
when(CoreRSAUtil.encryptByPublicKey(Mockito.anyByte()[], Mockito.anyString())).thenReturn("test");
Assert.assertNotNull(action.operate(info));
}
@Test
public void getTypes() throws Exception {
}
}
ClassCastException 肯定是类型不匹配了,但是功能可以正常执行,那就是类加载器的问题。
网上搜索 增加 @PowerMockIgnore({"javax.management.*","javax.crypto.*"}) 防止加载错类
java.lang.ClassCastException: com.sun.crypto.provider.RSACipher cannot be cast to javax.crypto.CipherSpi
具体细节留下 回头研究下 为什么PowerMockIgnore加载错类
相关文章推荐
- java.lang.ClassCastException: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider
- java.lang.ClassCastException: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$
- java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***问题解决方案
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- Java-Spring:java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***问题解决方案
- java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl 错误解决办法
- java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredCommentImpl cannot be c
- java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredTextImpl cannot be cas
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...今天
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
- java.lang.ClassCastException: android.widget.HeaderViewListAdapter cannot be cast to com.android.mms
- java.lang.ClassNotFoundException: com.sun.tools.internal.xjc.api.XJC
- java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to
- 跪求解决java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl
- com.alibaba.dubbo.rpc.RpcException: java.lang.ClassCastException: java.lang.Integer cannot be cast t
- java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to
- java.lang.ClassCastException: com.bumptech.glide.request.target.SquaringDrawable cannot be cast to a
- java.lang.ClassCastException: java.lang.Object cannot be cast to com.tgb.entity.Users
- java.lang.Class Cast Exception: com.lidroid.xutils.bitmap.core.Async Drawable cannot be cast to andr