단일 테스트 java. lang. ClassCastException: com. sun. crypto. provider. RSACiphe 추가

1902 단어 자바
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 가 왜 잘못된 종 류 를 불 러 왔 는 지 연구 해 보 세 요.

좋은 웹페이지 즐겨찾기