Glassfish - 非常奇怪的ClassCastException

时间:2013-11-16 13:59:40

标签: java web-services glassfish

尝试调用远程Web服务时出现此异常... 奇怪 - 因为我们只在Glassfish 2.1 / 3.1环境中有这个例外...... 当我从命令行启动代码(JDK 1.6.0_16-b01)一切正常!所以看起来是一个Glassfish问题

有什么想法吗?

  

任务执行失败com.sun.xml.ws.client.ClientTransportException:   HTTP传输错误:java.lang.ClassCastException:java.lang.String   无法强制转换为java.lang.Integer          在com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:131)          在com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:219)          在com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:143)          at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:139)          在com.sun.xml.ws.api.pipe.Fiber .__ doRun(Fiber.java:961)          在com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:910)          在com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:873)          在com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:775)          在com.sun.xml.ws.client.Stub.process(Stub.java:429)          在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)          在com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:151)          在$ Proxy317.zapCableDevice(未知来源)          在com.dob.ns.service.ZAPService.authorizeSTB(ZAPService.java:128)          在com.dob.ns.service.ZAPService.process(ZAPService.java:91)          在com.dob.ns.core.DOBProcessDescriptor $ DOBServiceExecutor.run(DOBProcessDescriptor.java:269)          at java.lang.Thread.run(Thread.java:619)引起:java.lang.ClassCastException:java.lang.String无法强制转换为   为java.lang.Integer          at com.sun.xml.ws.transport.http.client.HttpClientTransport.createHttpConnection(HttpClientTransport.java:287)          在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);

所有参数均为字符串类型

1 个答案:

答案 0 :(得分:0)

我得到了同样的错误。我花了几个小时来解决这个问题。我使用了错误的BindingProviderProperties接口。

BindingProviderProperties接口存在于两个不同的包中。 (适用于不同的Java / JAX-WS版本)

如果您收到ClassCastException,则很可能需要在soap服务类中导入不同的包。

更改

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

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