2013-11-16 3 views
0

Я получаю это исключение при попытке вызвать удаленный веб-сервис ... Странный - потому что у нас есть это исключение ТОЛЬКО в среде Glassfish 2.1/3.1 ... Когда im запускает код из командной строки (JDK 1.6.0_16-b01) все работает отлично! Так выглядит его проблема GlassfishGlassfish - ОЧЕНЬ странный ClassCastException

Любые идеи?

Task execution failed com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:131) at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:219) at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:143) at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:139) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:961) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:910) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:873) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:775) at com.sun.xml.ws.client.Stub.process(Stub.java:429) at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:168) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:102) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:151) at $Proxy317.zapCableDevice(Unknown Source) at com.dob.ns.service.ZAPService.authorizeSTB(ZAPService.java:128) at com.dob.ns.service.ZAPService.process(ZAPService.java:91) at com.dob.ns.core.DOBProcessDescriptor$DOBServiceExecutor.run(DOBProcessDescriptor.java:269) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at com.sun.xml.ws.transport.http.client.HttpClientTransport.createHttpConnection(HttpClientTransport.java:287) at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:116)

... 17 более

проблемм только когда код называется внутри развертывания EAR

 RequestData req = new RequestData(); 
     String MacAddress = ServiceUtils.formatMac(mac); 
     req.setClientSystemId(CLIENT_SYSTEM_ID); 
     req.setMacAddress(MacAddress); 
     req.setSerialNumber(SerialNumber); 

     CableDevicesServicesSoap dev = service.getCableDevicesServicesSoap(); 
     ZapCableDeviceRequest request = new ZapCableDeviceRequest(); 
     request.setRequestData(req); 
     request.setTransactionId(transactionId); 
     ZapCableDeviceResponse answer = dev.zapCableDevice(request); 

Все параметры есть строка типа

+0

Было бы полезно, чтобы увидеть WSDL сервиса вы звоните, плюс код для вызова его, сводится к SSCCE. – razlebe

+0

Как им говорят - это не проблема с кодом, потому что тот же код работает отлично fom command line – user2999440

+0

Righto. Перемещение затем ... – razlebe

ответ

0

Я получил ту же ошибку. Мне потребовалось пару часов, чтобы решить проблему. Я использовал неправильный интерфейс BindingProviderProperties.

Интерфейс BindingProviderProperties существует в двух разных пакетах. (для разных версий Java/JAX-WS)

Если вы получаете ClassCastException, скорее всего, вам понадобится импортировать другой пакет в ваш класс обслуживания мыла.

изменение

import com.sun.xml.ws.client.BindingProviderProperties; 

в

import com.sun.xml.internal.ws.client.BindingProviderProperties; 
Смежные вопросы