简体   繁体   中英

Glassfish - VERY strange ClassCastException

I get this exception when try to call remote web service... Strange - because we have this exception ONLY in Glassfish 2.1/3.1 environment... When im start code from command line (JDK 1.6.0_16-b01) all works fine! So looks its a Glassfish problem

Any ideas?

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.s un.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 more

Problemm ONLY when code called inside deployed 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);

All parameters is String type

I got the same error. It took me couple of hours to fix the problem. I was using the wrong BindingProviderProperties interface.

The BindingProviderProperties interface exists in two different packages. (for different Java/JAX-WS versions)

If you are getting ClassCastException most probably you need import different package in your soap service class.

change

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

to

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM