【问题标题】:Axis client Call throwing classcast exceptionAxis客户端调用抛出classcastexception
【发布时间】:2013-12-19 19:05:08
【问题描述】:

(我正在使用eclipse)

我是 Axis 动态 Web 服务客户端调用的新手。我已经编码如下

cEAServiceAvailRequestModel = getCEAServiceAvailRequestModel();


org.apache.axis.client.Call call =   (org.apache.axis.client.Call)        
     getWSDLCallObject(wsConfig.getProperty("WsdlUrl"),
    wsConfig.getProperty("MethodName"),
    wsConfig.getProperty("PortName"),
    wsConfig.getProperty("PortLocation"),
    wsConfig.getProperty("ServiceName"),
    wsConfig.getProperty("TargetNameSpace"),
    wsConfig.getProperty("HandlerInfo"));

call = returnCAMEOCall(call);

Object[] objectList = new Object[1];
objectList[0] = cEAServiceAvailRequestModel;
CEAServiceAvailResponseModel responseModel = (CEAServiceAvailResponseModel) call
                .invoke(objectList);
CEATypeAvailModel[] availabilityList = responseModel
                .getAvailabilityList();

System.out.println("Final Response : " + availabilityList.toString());

     } catch (Exception e) {
    // TODO: handle exception
        e.printStackTrace();
}
}

public static Call getWSDLCallObject(String wsdlurl, String methodname,
        String portname, String portLocation, String servicename,
        String targetNameSpace, String handler) {
Call call = null;
try {

    QName vnposvcName = new QName(targetNameSpace, servicename);            
    QName portName = new QName(portLocation, portname);
    QName methodName = new QName(portLocation, methodname);
    QName wponame = new QName("http://wpo.verizon.com", "wpo");
    QName[] qnames = new QName[] { wponame };
    ServiceFactory factory = ServiceFactory.newInstance();
    javax.xml.rpc.Service service = factory.createService(new URL(
            wsdlurl), vnposvcName);

    if (handler != null) {
        java.util.List list = service.getHandlerRegistry()
                    .getHandlerChain(portName);
        HandlerInfo handlerInfo = new HandlerInfo(
                    Class.forName(handler), null, null);
        list.add(handlerInfo);
    }

    call = service.createCall(portName, methodName);

} catch (Exception e) {
    e.printStackTrace();
    return null;
}
return call;
}

//我遇到如下异常

java.lang.ClassCastException: weblogic.webservice.core.rpc.CallImpl 在 com.verizon.cameo.CameoWebServiceClient.CameoAddressValidation(CameoWebServiceClient.java:63) 在 com.verizon.cameo.CameoWebServiceClient.main(CameoWebServiceClient.java:21)

【问题讨论】:

    标签: java axis rpc webservice-client


    【解决方案1】:

    最后,我得到了解决方案,我们必须为下面的类型转换设置 VM 参数

    -Djavax.xml.rpc.ServiceFactory=org.apache.axis.client.ServiceFactory 
    -Djavax.xml.soap.MessageFactory=org.apache.axis.soap.MessageFactoryImpl
    -Dweblogic.webservice.client.ssl.trustedcertfile=C:\bea\bea1035\wlserver_10.3 \server\lib\trusted.crt 
    -Dweblogic.security.SSL.verbose=true 
    -Dweblogic.webservice.verbose=true 
    -Dweblogic.webservice.client.verbose=true 
    -Dssl.debug=true 
    -Dweblogic.webservice.client.ssl.strictcertchecking=false
    

    现在,我可以进行网络服务调用了。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多