java.lang.NoSuchMethodError:org.bouncycastle.asn1.DERSequence<;初始化>;(Lorg/bouncycastle/asn1/DERECODABLEVECTOR;)V
我在尝试获取时间戳响应时出错。我使用的代码是:java.lang.NoSuchMethodError:org.bouncycastle.asn1.DERSequence<;初始化>;(Lorg/bouncycastle/asn1/DERECODABLEVECTOR;)V,java,timestamp,runtime-error,bouncycastle,Java,Timestamp,Runtime Error,Bouncycastle,我在尝试获取时间戳响应时出错。我使用的代码是: PdfPKCS7 sgn = new PdfPKCS7(pk, chain, null, "SHA256", null, false); InputStream data = sap.getRangeStream(); MessageDigest messageDigest = MessageDigest.getInstance("SHA256", "BC"); byt
PdfPKCS7 sgn = new PdfPKCS7(pk, chain, null, "SHA256", null, false);
InputStream data = sap.getRangeStream();
MessageDigest messageDigest = MessageDigest.getInstance("SHA256",
"BC");
byte buf[] = new byte[8192];
int n;
while ((n = data.read(buf)) > 0) {
messageDigest.update(buf, 0, n);
}
byte hash[] = messageDigest.digest();
Calendar cal = Calendar.getInstance();
byte[] ocsp = null;
byte sh[] = sgn.getAuthenticatedAttributeBytes(hash, cal, ocsp);
sgn.update(sh, 0, sh.length);
byte[] encodedSig = sgn.getEncodedPKCS7(hash, cal, tsc, ocsp);
System.out.println("contentEstimated: " + (contentEstimated + 2));
System.out.println("encodedSig.length: " + encodedSig.length);
错误出现在以下行:
字节sh[]=sgn.getAuthenticatedAttributeBytes(哈希、cal、ocsp)
错误是:
org.alfresco.error.AlfrescoRuntimeException: Exception in Transaction.
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:404)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:227)
at org.alfresco.web.bean.dialog.BaseDialogBean.finish(BaseDialogBean.java:127)
at org.alfresco.web.bean.dialog.DialogManager.finish(DialogManager.java:534)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
at javax.faces.component.UICommand.broadcast(UICommand.java:109)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NoSuchMethodError: org.bouncycastle.asn1.DERSequence.<init>(Lorg/bouncycastle/asn1/DEREncodableVector;)V
at com.lowagie.text.pdf.PdfPKCS7.getAuthenticatedAttributeSet(Unknown Source)
at com.lowagie.text.pdf.PdfPKCS7.getAuthenticatedAttributeBytes(Unknown Source)
at org.alfresco.module.veritasCONTRATOS.model.service.EmisionContratoServiceImpl.firmaDocumentoTimestamp(EmisionContratoServiceImpl.java:366)
at org.alfresco.module.veritasCONTRATOS.model.service.EmisionContratoServiceImpl.firmaContrato(EmisionContratoServiceImpl.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
at com.sun.proxy.$Proxy69.firmaContrato(Unknown Source)
at org.alfresco.module.veritasCONTRATOS.beans.AddEmConDialog.finishImpl(AddEmConDialog.java:111)
at org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:121)
at org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:118)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:320)
... 31 more
org.alfresco.error.AlfrescoRuntimeException:事务中的异常。
位于org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:404)
位于org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:227)
位于org.alfresco.web.bean.dialog.BaseDialogBean.finish(BaseDialogBean.java:127)
位于org.alfresco.web.bean.dialog.DialogManager.finish(DialogManager.java:534)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
位于org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
位于javax.faces.component.UICommand.broadcast(UICommand.java:109)
位于javax.faces.component.UIViewRoot.\u broadcastForPhase(UIViewRoot.java:97)
位于javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
位于org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
在org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
位于org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
位于javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
运行(Thread.java:662)
原因:java.lang.NoSuchMethodError:org.bouncycastle.asn1.DERSequence.(Lorg/bouncycastle/asn1/DeRecodableVector;)V
位于com.lowagie.text.pdf.PdfPKCS7.getAuthenticatedAttributeSet(未知来源)
位于com.lowagie.text.pdf.PdfPKCS7.getAuthenticatedAttributeBytes(未知来源)
位于org.alfresco.module.veritasCONTRATOS.model.service.EmisionContratoServiceImpl.firmadocumentTimestamp(EmisionContratoServiceImpl.java:366)
位于org.alfresco.module.veritasCONTRATOS.model.service.emissionContratoServiceImpl.firmacontato(emissionContratoServiceImpl.java:164)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
位于org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
com.sun.proxy.$Proxy69.firmaContrato(未知来源)
位于org.alfresco.module.veritasCONTRATOS.beans.AddEmConDialog.finishImpl(AddEmConDialog.java:111)
位于org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:121)
位于org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:118)
位于org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:320)
... 还有31个
我显示了与此相同的错误(),但我无法执行此操作。
我知道问题在于bouncycastle图书馆。我尝试使用以下版本:
- bcprov-jdk15-1.46.jar
- bcmail-jdk15-1.46.jar
- itextpdf-5.1.2.jar
我用bcprov jdk、bcmail jdk和bctsp jdk版本15-146到15-143解决了这个问题。看起来类路径中有不兼容的JAR。