我已经为ibmRDM.wsdl文件创建了客户端,在执行客户端时收到wssecurity错误



我的Java类测试客户端

package com.org;
import com.ibm.mdm.schema.InquiryParam;
import com.ibm.mdm.schema.RDValueBObjType;
import com.ibm.mdm.schema.RequestControl;
import com.ibm.mdm.schema.TcrmParam;
import com.ibm.mdm.wsdl.schema.TCRMInquiryInputType;
import com.ibm.xmlns.rdm.mih.rdm.port.GetRDValueOutputType;
import com.ibm.xmlns.rdm.mih.rdm.port.ProcessingFault;
import com.ibm.xmlns.rdm.mih.rdm.port.RDMPortType;
import com.ibm.xmlns.rdm.mih.rdm.port.RDMService;
public class Test {
    /**
     * @param args
     */
    public static void main(String[] args) {
        RDMService rdmService=new RDMService();
        RDMPortType rdmPortType=rdmService.getRDMPort();
        TCRMInquiryInputType obj=new TCRMInquiryInputType();
        InquiryParam param=new InquiryParam();

        TcrmParam tcrmParam=new TcrmParam();
        tcrmParam.setName("RDValue");
        tcrmParam.setValue("861445626000088316");
        TcrmParam tcrmParam1=new TcrmParam();
        tcrmParam1.setName("InquiryLevel");
        tcrmParam1.setValue("1");
        RequestControl control=new RequestControl();
        /*List<TcrmParam> list=new ArrayList<TcrmParam>();
        list.add(tcrmParam);
        list.add(tcrmParam1);*/
        param.getTcrmParam().add(tcrmParam);
        param.getTcrmParam().add(tcrmParam1);
        obj.setRequestControl(control);
        obj.setInquiryParam(param);
        try {
            GetRDValueOutputType outputType= rdmPortType.getRDValue(obj);
            RDValueBObjType bObjType=outputType.getRDValueBObj();
            System.out.println(bObjType.getRdValueName());
            System.out.println(bObjType.getRdValueID());
            System.out.println(bObjType.getRdValueSetID());
        } catch (ProcessingFault e) {
            e.printStackTrace();
        }
    }
}

运行java文件后的错误堆栈跟踪。。。。。

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: security.wssecurity.WSSContextImpl.s02: com.ibm.websphere.security.WSSecurityException: Exception org.apache.axis2.AxisFault: CWWSS6500E: There is no caller identity candidate that can be used to login. ocurred while running action: com.ibm.ws.wssecurity.handler.WSSecurityConsumerHandler$1@b8aeae3e
    at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:190)
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:129)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:120)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:90)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:147)
    at com.sun.proxy.$Proxy33.getRDValue(Unknown Source)
    at com.org.Test.main(Test.java:43)

不提供用户和密码。您可以将这些参数添加到SOAP信封的标头

最新更新