嗨,我在从Apache Axis调用一个安全的网址,比如说"https://adcenter.microsoft.com/“时,我得到了下面的无效列表异常,我想这也是HTTPClient的情况,我知道我们可以用java工具生成一个.keysotre,并把它放在服务器的conf目录中,但是在这个场景中,我通过main方法调用代码,所以.keystore保存在服务器conf中不会有帮助,请建议如何在java中为一个安全的URL安装证书/许可证,这样我们就可以在we服务器环境下运行代码,或者只是调用main方法,这应该是可行的
Exception in thread "main" com.dstc.security.util.licensing.InvalidLicense: Cannot load license for module jcsi.provider
at com.dstc.security.util.licensing.LicenseValidator.loadLicense(LicenseValidator.java:87)
at com.dstc.security.util.licensing.LicenseValidator.check(LicenseValidator.java:290)
at com.dstc.security.provider.symm.Licensed.<clinit>(Licensed.java:60)
at com.dstc.security.provider.symm.BlockCipher.<clinit>(BlockCipher.java:629)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at java.security.Provider$Service.newInstance(Provider.java:1221)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at com.sun.net.ssl.internal.ssl.CipherBox.<init>(CipherBox.java:82)
at com.sun.net.ssl.internal.ssl.CipherBox.newCipherBox(CipherBox.java:113)
at com.sun.net.ssl.internal.ssl.CipherSuite$BulkCipher.newCipher(CipherSuite.java:361)
at com.sun.net.ssl.internal.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:399)
at com.sun.net.ssl.internal.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:378)
at com.sun.net.ssl.internal.ssl.CipherSuite.isAvailable(CipherSuite.java:145)
at com.sun.net.ssl.internal.ssl.CipherSuiteList.buildAvailableCache(CipherSuiteList.java:215)
at com.sun.net.ssl.internal.ssl.CipherSuiteList.getDefault(CipherSuiteList.java:239)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.init(SSLSocketImpl.java:520)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:358)
at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:71)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)发布于 2011-11-10 20:46:37
这个特定的问题似乎与Axis或HttpClient无关: JRE使用的是一个需要有效许可证的SSL提供者(即您需要付费才能使用它)。您是否出于任何特殊原因打算使用"Wedgetail JCSI components"作为SSL提供者(也许是旧版本的Java )?
如果没有,请检查您的类路径。也许有人已经将JCSI JAR添加到其中(它的名称类似于"jcsi_base.jar"),但忘记了它,或者他们忘记包括"jcsi_license.jar“文件。
https://stackoverflow.com/questions/8079493
复制相似问题