cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1835
Views
0
Helpful
0
Comments
cdnadmin
Level 11
Level 11
This document was generated from CDN thread

Created by: john katsavras on 31-05-2013 05:23:33 AM
Hi there,
Just wondering if anyone can see why i am getting the exception "java.lang.ClassCastException" from the code below:          
        // Instantiate the wsimport generated SXML API Service client --
        RISService risportService = new RISService();
        RisPortType risportPort = risportService.getRisPort();
 
        // Set the URL, user, and password on the JAX-WS client
        String hostUrl = "https://10.1.1.1:8443/realtimeservice2/services/RISService";
        ((BindingProvider) risportPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, hostUrl);
        ((BindingProvider) risportPort).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, cucmDetails.getAxlUsername());
        ((BindingProvider) risportPort).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, cucmDetails.getAxlPassword());
 
        // create and populate the selectCmDevice request
        SelectCmDevice sxmlParams = new SelectCmDevice();
        CmSelectionCriteria criteria = new CmSelectionCriteria();
        long maxNum = 200;
        long modelNum = 255;
        ArrayOfSelectItem items = new ArrayOfSelectItem();
       
        //create a select item criteria to retrieve devices with names matching "SEP123412341234"
        SelectItem item = new SelectItem();
        item.setItem("SEP123412341234");
        items.getItem().add(item);
 
        //Search on all nodes
        criteria.setNodeName("Any");
        //get back max 200 phones. 9+ can get upto 1000
        criteria.setMaxReturnedDevices(maxNum);
        //get back phones only
        criteria.setDeviceClass("Phone");
        //255 means get back ALL phone models
        criteria.setModel(modelNum);
        //get back only Registered phones
        criteria.setStatus("Registered");
        //return results in order of name
        criteria.setSelectBy("Name");
        //array of phones to get results back for
        criteria.setSelectItems(items);
        sxmlParams.setCmSelectionCriteria(criteria);
       
        //make selectCmDevice request
        SelectCmDeviceReturn selectResponse = risportPort.selectCmDevice("",criteria); << This is where i get the exception outline below
Exception in thread "AWT-EventQueue-0" javax.xml.ws.WebServiceException: java.lang.ClassCastException: [C cannot be cast to java.lang.String
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source)
    at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Unknown Source)
    at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Unknown Source)
    at com.sun.xml.internal.ws.client.Stub.process(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)
    at com.sun.proxy.$Proxy40.selectCmDevice(Unknown Source)
    at utils._9.APIRIS9.getPhoneIPadd(APIRIS9.java:66)
 
Thanks
Alexis

Subject: RE: Java java.lang.ClassCastException with selectCmDevice
Replied by: David Staudt on 31-05-2013 05:57:36 PM
I'm thinking that perhaps the service URL being specified here should be:
https://<server name>/realtimeservice/services/RisPort70
vs.
https://<ServerName>:8443/realtimeservice2/services/RISService70
The latter is the URL for the newer version of the service which provides the SelectCmDeviceExt request.
Probably when the response is returned, the XML does not match up with the schema-generated code from the SelectCmDevice request and there is a cast exception.

Subject: RE: Java java.lang.ClassCastException with selectCmDevice
Replied by: john katsavras on 03-06-2013 05:44:35 AM
Hi David,

Thanks for the reply. it turns out the issue was with line:
((BindingProvider) risportPort).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, cucmDetails.getAxlPassword());

Password are stored as char arrays in java. The solution was:
((BindingProvider) risportPort).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, String.valueOf(cucmDetails.getAxlPassword()));

works now.

Thanks
Alexis
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links