Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services RuntimeException:crypto.Merlin无法创建实例_Web Services_Axis2_Ws Security_Weblogic11g_Rampart - Fatal编程技术网

Web services RuntimeException:crypto.Merlin无法创建实例

Web services RuntimeException:crypto.Merlin无法创建实例,web-services,axis2,ws-security,weblogic11g,rampart,Web Services,Axis2,Ws Security,Weblogic11g,Rampart,我已经在linux ubuntu服务器上安装了weblogic 11g。我已经在weblogic上部署了我的web服务。当我试图从安装在本地窗口机器上的SOAP UI访问我的Web服务时,我遇到了下面提到的异常 org.apache.ws.security.components.crypto.Merlin cannot create instance java.lang.RuntimeException: org.apache.ws.security.components.crypto.

我已经在linux ubuntu服务器上安装了weblogic 11g。我已经在weblogic上部署了我的web服务。当我试图从安装在本地窗口机器上的SOAP UI访问我的Web服务时,我遇到了下面提到的异常

    org.apache.ws.security.components.crypto.Merlin cannot create instance
java.lang.RuntimeException: org.apache.ws.security.components.crypto.Merlin cannot create instance
        at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:231)
        at org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFactory.java:95)
        at org.apache.rampart.util.RampartUtil.getSignatureCrypto(RampartUtil.java:398)
        at org.apache.rampart.RampartEngine.process(RampartEngine.java:136)
        at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:254)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
        at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at com.csdcsystems.amanda.servlet.AmandaAxisServlet.service(AmandaAxisServlet.java:91)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3729)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.ClassCastException: org.apache.ws.security.components.crypto.Merlin cannot be cast to org.apache.ws.security.components.crypto.Crypto
        at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:217)
我的jks文件在我的类路径中。通过谷歌搜索,我发现Rampart正在查看错误的cacerts文件,如下URL所示:

我已经在我的services.xml中添加了属性,但仍然得到了相同的错误。我添加了以下属性:

<ramp:property name="org.apache.ws.security.crypto.merlin.load.cacerts">false</ramp:property>
请注意,在windows环境下安装的weblogic上部署web服务时,一切正常

请帮我确定我遗漏了什么


提前感谢。

您是否将此属性添加到WSDL并重新生成它?您好,herry,请添加更多详细信息。我不明白你想说什么。我不是先创建wsdl,然后创建java类。我在services.xml中添加了这个属性,它定义了安全策略。这是Axis的财产,我错了吗?因此,如果是的话,我认为最好重新生成这些用Axis生成的WSDL。Axis2使用Rampart在web服务中提供安全性。上述财产是城墙的一部分。无论如何,当我们调用附加了?WSDL的服务url时,如果在配置中做了任何更改,WSDL就会自动重新生成。