0

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

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

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

如果我添加rt.jarWEB-INF/lib文件夹并部署到 Jboss。不再抛出该错误。但是我得到了一个新的异常,即使我添加jsse.jarlib 但无法解决错误。

 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.7,服务器环境也和我的本地环境一样Windows XPEclipse Juno

4

2 回答 2

6

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

于 2015-01-12T12:11:54.633 回答
1
  1. 永远不要将 rt.jar(或任何其他内置 java)打包为部署的一部分。它会导致类加载问题和奇怪的错误——就像你现在遇到的那样。
  2. 你需要做的是在你的 jar 清单中声明你对 dom API 的依赖。这已经在 jboss 论坛上被问过了。解决方案是在您的顶级工件(.ear/ .war 等)清单文件中有一个“导入包”键,其值为org.w3c.dom.Node;resolution:="optional"

编辑:或者您可以切换您的 DOM 解析代码以依赖 jdk 未提供的外部库(如dom4j)并将其包含为库

于 2013-08-27T07:32:31.953 回答