如何找到java ClassCastException发生的位置
只是想知道是否有人能理解为什么我从下面的代码中得到异常“java.lang.ClassCastException”如何找到java ClassCastException发生的位置,java,debugging,exception,wsdl,wsimport,Java,Debugging,Exception,Wsdl,Wsimport,只是想知道是否有人能理解为什么我从下面的代码中得到异常“java.lang.ClassCastException” // Instantiate the wsimport generated SXML API Service client -- RISService risportService = new RISService(); RisPortType risportPort = risportService.getRisPort(); // Set th
// 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
RISService、RisPortType是我从WSDL文件获得的库,然后使用wsimport生成.java文件
// 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
我知道异常意味着什么,但我只是不知道如何追踪它
// 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
谢谢
Alexis我打赌您的密码将以
char[]
的形式返回,jaxws需要一个字符串。在我的例子中
// 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
Object port = service.getPort(qname, c);
WSBindingProvider bp = (WSBindingProvider) port;
// Manually set connection timeouts as we seem to hit them during IT testing
Map<String, Object> requestContext = bp.getRequestContext();
requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, env.getProperty("timeout"));
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, env.getProperty("timeout"));
objectport=service.getPort(qname,c);
WSBindingProvider bp=(WSBindingProvider)端口;
//手动设置连接超时,因为我们在IT测试期间似乎遇到了这些超时
Map requestContext=bp.getRequestContext();
put(BindingProviderProperties.REQUEST_TIMEOUT,env.getProperty(“TIMEOUT”));
put(BindingProviderProperties.CONNECT_TIMEOUT,env.getProperty(“TIMEOUT”));
正如您所看到的,requestContext.put()接受一个字符串和一个对象,您认为放置一个字符串超时会起作用,但不,java ws需要一个int。。
这是一个巨大的陷阱。DOH!。。。真不敢相信我竟然忘了!谢谢,这就解决了。
// 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