1

Linux ubuntu サーバーに weblogic 11g をインストールしました。Web サービスを weblogic にデプロイしました。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 が以下の URL のように間違った cacerts ファイルを参照していることがわかりました。

http://emelnikov.blogspot.in/2013/04/org.html

services.xml にプロパティを追加しましたが、それでも同じエラーが発生します。以下のプロパティを追加しました:

<ramp:property name="org.apache.ws.security.crypto.merlin.load.cacerts">false</ramp:property>

Windows 環境にインストールされた weblogic で Web サービスがデプロイされている場合、すべてが正常に動作していることに注意してください。

私が欠けているものを特定するのを手伝ってください。

前もって感謝します。

4

0 に答える 0