0

Axis Web サービスで WSS4J を使用しようとしましたが、何も起こりません。WSS4J はまったく使われていないようです。必要なライブラリはすべて WEB-INF/lib ディレクトリにあります。サービスは org.apache.axis.client.AdminClient ユーティリティでデプロイされています。

ここに私の deploy.wsdd が​​あります:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<!-- Services from AccountsServiceImplService WSDL service -->
<service name="AccountsServiceImpl" provider="java:RPC" style="wrapped"
    use="literal">
    <requestFlow>
        <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
            <parameter name="passwordCallbackClass" value="haha" />
            <parameter name="action" value="UsernameToken" />
        </handler>
    </requestFlow>
    <parameter name="wsdlTargetNamespace" value="http://accoutsservice.abc.ru" />
    <parameter name="wsdlServiceElement" value="AccountsServiceImplService" />
    <parameter name="schemaQualified" value="http://accoutsservice.abc.ru" />
    <parameter name="wsdlServicePort" value="AccountsServiceImpl" />
    <parameter name="className"
        value="ru.abc.accoutsservice.AccountsServiceImpl" />
    <parameter name="wsdlPortType" value="AccountsServiceImpl" />
    <parameter name="typeMappingVersion" value="1.2" />
    <operation xmlns:operNS="http://accoutsservice.abc.ru"
        xmlns:retNS="http://accoutsservice.abc.ru" xmlns:rtns="http://www.w3.org/2001/XMLSchema"
        name="sendAccountNumber" qname="operNS:sendAccountNumber"
        returnQName="retNS:sendAccountNumberReturn" returnType="rtns:string"
        soapAction="">
    </operation>
    <parameter name="allowedMethods" value="sendAccountNumber" />

</service>

hahaクラスがなくてもエラーは発生しません( passwordCallbackClassdeploy.wsdd のパラメーターを参照)。WSS ヘッダーなしで SOAP 要求をサービスに自由に送信できます。

アップデート

クラスパスの問題をいくつか解決しました。http://localhost:8080/axis/servlet/AxisServletページを開こうとすると、次のエラーが表示されますorg.apache.axis.ConfigurationException: java.lang.ClassNotFoundException: org.apache.ws.axis.security.WSDoAllSender。WSS4J jar は {tomcat}\webapps\axis\WEB-INF\lib ディレクトリにあります。私が間違っていることは何ですか?

更新 #2

nither wsdl4jjarにはorg.apache.ws.axis.security.WSDoAllSenderクラスもwss4jjarも含まれていないようです。ただし、このクラスバージョン 1.5.xのwss4jjar に含まれていました。今は行方不明です。WSS4J のドキュメントは古くなっています。

4

0 に答える 0