JBoss7:为SSLContext配置的类:sun.security.ssl.SSLContextImpl $ TLS10Context不是SSLContext

时间:2013-08-27 07:18:49

标签: java database-connection classpath jboss7.x

我正在开发一个独立应用程序的应用程序,并将其打包为jar文件(lika a OSGi Plugin)并将部署jar into JBoss

当我在我的日食中运行我的应用程序时,应用程序工作正常。在Jboss中它会抛出错误。

java.lang.ClassNotFoundException: org.w3c.dom.Node

如果我将rt.jar添加到WEB-INF/lib文件夹并部署到Jboss中。那个错误不再被抛出。但是我得到了一个新例外,即使我将jsse.jar添加到lib但无法解决错误。

 com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a 
 secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. 
 Error: "class configured for SSLContext: sun.security.ssl.SSLContextImpl$TLS10Context 
 not a SSLContext".
  ......

 Caused by: java.security.NoSuchAlgorithmException: class configured for 
 SSLContext: sun.security.ssl.SSLContextImpl$TLS10Context not a SSLContext

 06:10:53,484 ERROR [stderr] (default-short-running-threads-threads - 26) at     
 sun.security.jca.GetInstance.checkSuperClass(GetInstance.java:258)

 06:10:53,484 ERROR [stderr] (default-short-running-threads-threads - 26) at    
 sun.security.jca.GetInstance.getInstance(GetInstance.java:237)

 06:10:53,484 ERROR [stderr] (default-short-running-threads-threads - 26) at  
 sun.security.jca.GetInstance.getInstance(GetInstance.java:164)

 06:10:53,484 ERROR [stderr] (default-short-running-threads-threads - 26) at  
 javax.net.ssl.SSLContext.getInstance(SSLContext.java:156)

 06:10:53,500 ERROR [stderr] (default-short-running-threads-threads - 26) at   
 com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1353)

我的开发环境是Jdk1.7Windows XPEclipse Juno服务器环境也与我的本地环境相同。

2 个答案:

答案 0 :(得分:6)

还尝试添加 @PowerMockIgnore( “javax.net.ssl中。*”) 作为类注释。为我工作。

答案 1 :(得分:1)

  1. 不要将rt.jar(或任何其他java内置函数)打包为部署的一部分。它会导致类加载问题和奇怪的错误 - 就像你现在经历的那样。
  2. 您需要做的是在jar的清单中声明对dom API的依赖。这是asked already on the jboss forums。解决方案是在顶级工件( .ear / .war etc)清单文件中使用值为org.w3c.dom.Node;resolution:="optional"
  3. 的“Import-Package”键

    编辑:或者你可以切换你的DOM解析代码,以依赖像dom4j这样的jdk不提供的外部库,并将其作为库包含