JBOSS引入外部jar包报错
来源:互联网 发布:图书馆管理系统 uc矩阵 编辑:程序博客网 时间:2024/05/16 16:16
最近在一个工程中需要实现非对称加解密功能,于是使用Java提供的类org.bouncycastle.jce.provider.BouncyCastleProvider,进一步引入jar包bcprov-jdk16-146.jar,在Mavean工程中直接加入依赖:
<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk16</artifactId> <version>1.46</version></dependency>
部署到Jboss7.2.0中,然后启动工程,出现错误:
2017-10-23 21:18:49,273 INFO [stdout] (web-container-thread-1) java.lang.SecurityException: JCE cannot authenticate the provider BC 2017-10-23 21:18:49,273 INFO [stdout] (web-container-thread-1) at javax.crypto.Cipher.getInstance(DashoA13*..) 2017-10-23 21:18:49,273 INFO [stdout] (web-container-thread-1) at com.unionpay.upchat.pub.console.util.SecurityUtil.<clinit>(SecurityUtil.java:41) 2017-10-23 21:18:49,273 INFO [stdout] (web-container-thread-1) at com.unionpay.upchat.pub.console.restservice.UserResource.login(UserResource.java:111) 2017-10-23 21:18:49,274 INFO [stdout] (web-container-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2017-10-23 21:18:49,274 INFO [stdout] (web-container-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 2017-10-23 21:18:49,274 INFO [stdout] (web-container-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 2017-10-23 21:18:49,274 INFO [stdout] (web-container-thread-1) at java.lang.reflect.Method.invoke(Method.java:597) 2017-10-23 21:18:49,275 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167) 2017-10-23 21:18:49,275 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257) 2017-10-23 21:18:49,275 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222) 2017-10-23 21:18:49,275 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211) 2017-10-23 21:18:49,275 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542) 2017-10-23 21:18:49,276 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524) 2017-10-23 21:18:49,276 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126) 2017-10-23 21:18:49,276 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) 2017-10-23 21:18:49,276 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) 2017-10-23 21:18:49,276 INFO [stdout] (web-container-thread-1) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) 2017-10-23 21:18:49,283 INFO [stdout] (web-container-thread-1) Caused by: java.util.jar.JarException: Cannot parse vfs:/content/upchat-public-console-web.war/WEB-INF/lib/bcprov-jdk16-1.46.jar 2017-10-23 21:18:49,283 INFO [stdout] (web-container-thread-1) at javax.crypto.SunJCE_c.a(DashoA13*..) 2017-10-23 21:18:49,284 INFO [stdout] (web-container-thread-1) at javax.crypto.SunJCE_b.b(DashoA13*..) 2017-10-23 21:18:49,284 INFO [stdout] (web-container-thread-1) at javax.crypto.SunJCE_b.a(DashoA13*..) 2017-10-23 21:18:49,284 INFO [stdout] (web-container-thread-1) ... 46 more 2017-10-23 21:18:49,285 ERROR [stderr] (web-container-thread-1) java.lang.SecurityException: JCE cannot authenticate the provider BC 2017-10-23 21:18:49,285 ERROR [stderr] (web-container-thread-1) at javax.crypto.Cipher.getInstance(DashoA13*..) 2017-10-23 21:18:49,286 ERROR [stderr] (web-container-thread-1) at com.unionpay.upchat.pub.console.util.SecurityUtil.<clinit>(SecurityUtil.java:41) 2017-10-23 21:18:49,286 ERROR [stderr] (web-container-thread-1) at com.unionpay.upchat.pub.console.restservice.UserResource.login(UserResource.java:111) 2017-10-23 21:18:49,286 ERROR [stderr] (web-container-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2017-10-23 21:18:49,286 ERROR [stderr] (web-container-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 2017-10-23 21:18:49,287 ERROR [stderr] (web-container-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 2017-10-23 21:18:49,287 ERROR [stderr] (web-container-thread-1) at java.lang.reflect.Method.invoke(Method.java:597) 2017-10-23 21:18:49,287 ERROR [stderr] (web-container-thread-1) at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167) 2017-10-23 21:18:49,288 ERROR [stderr] (web-container-thread-1) at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257)
按照网上提供的方法:
- pom.xml中上述依赖包处增加:
<scope>provided</scope>
- 在JAVA_HOME/jre/lib/security/java.security下增加
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider to java.security
- 将该jar包放到JAVA_HOME/jre/lib/ext下,并将项目中的jar包去掉
发现并不能解决问题,仍然报错:
2017-10-23 18:53:51,924 INFO [org.jboss.weld.ClassLoading] (MSC service thread 1-4) catching: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class com.unionpay.upchat.pub.console.util.SecurityUtil Caused by: java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.6.0_45] at java.lang.Class.privateGetDeclaredFields(Class.java:2300) [rt.jar:1.6.0_45] at java.lang.Class.getDeclaredFields(Class.java:1745) [rt.jar:1.6.0_45] at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:105) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:102) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:63) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at org.jboss.weld.util.reflection.SecureReflections.getDeclaredFields(SecureReflections.java:102) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:155) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:121) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:59) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:50) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] at com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:358) [guava-18.0.jar:] at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184) [guava-18.0.jar:] at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153) [guava-18.0.jar:] at com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69) [guava-18.0.jar:] at com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:396) at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:163) [weld-core-1.1.10.Final.jar:2012-10-12 10:00] ... 11 more Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider from [Module "deployment.upchat-public-console-web.war:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196) [jboss-modules.jar:1.2.2.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) [jboss-modules.jar:1.2.2.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) [jboss-modules.jar:1.2.2.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:399) [jboss-modules.jar:1.2.2.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) [jboss-modules.jar:1.2.2.Final] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) [jboss-modules.jar:1.2.2.Final]
经过一番研究,可以按照如下步骤解决上述存在的问题:
(1)project的pom.xml增加:
<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk16</artifactId> <version>1.46</version> <scope>provided</scope></dependency>
(2)在$JBOSS_HOME/modules/system/layers/base/org/bouncycastle/main下,添加bcprov-jdk16-146.jar、module.xml
其中module.xml内容如下:
<module xmlns="urn:jboss:module:1.1" name="org.bouncycastle"> <resources> <resource-root path="bcprov-jdk16-1.46.jar"/> </resources> <dependencies> <module name="javax.api" slot="main" export="true"/> </dependencies></module>
- (3)在$JBOSS_HOME/standalone/configuration/standalone.xml中找到处添加如下:
<global-modules> <module name="org.bouncycastle" slot="main"/> </global-modules>
阅读全文
0 0
- JBOSS引入外部jar包报错
- maven 打包 引入外部jar
- springboot引入外部jar包
- maven引入外部jar的方式
- EAS BOS开发引入外部JAR
- Intellij IDEA 引入外部jar包
- 2015061005 - 为项目引入外部jar包
- NoClassDefFoundError --如何引入外部jar包
- IDEA引入外部jar包的方法
- maven 引入外部jar包的方法
- ADT17中引入外部JAR包时出现ClassNotFoundException
- Centos命令行执行Java程序(引入外部Jar)
- maven 引入外部jar包的几种方式
- maven 引入外部jar包的几种方式
- maven 引入外部jar包的几种方式
- spring-boot打包,引入外部jar包问题
- maven引入外部jar的几种方式
- maven 引入外部jar包的几种方式
- STM32如何在LCD液晶屏上显示变量的数值
- Vim 快捷键一览表
- MC9S12XEP100 ATD模块 驱动程序
- Word2Vec详解
- 多条件查询分页页面JSP
- JBOSS引入外部jar包报错
- Permission denied (publickey). fatal: Could not read from remote repository. Pleasemake sure you h
- Linux上安装jdk
- ajax使用,前端与后端交互
- 数据探索之数据预处理
- CSS3 Flex布局(容器)
- 基本数据类型和引用数据类型
- Codeforces626F-Group Projects-神奇状态之DP
- Java实现文件上传