webservice项目,前边几个接口都正常,到最后一个接口了。
本机怎么测都正常,测环境怎么部都报错,而且是一启动就动不了,报如下错
com.sun.xml.ws.transport.http.servlet.WSServletDelegate doGet
严重: caught throwable
java.lang.IllegalAccessError: tried to access class com.sun.xml.bind.v2.runtime.reflect.opt.Const from class com.tjpme.mgrweb.model.RSCorrespondValue$JaxbAccessorF_id
at com.tjpme.mgrweb.model.RSCorrespondValue$JaxbAccessorF_id.set(FieldAccessor_Long.java:59)
at com.sun.xml.bind.v2.runtime.reflect.Accessor.receive(Accessor.java:171)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:486)
at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleEndElement(StAXStreamConnector.java:250)
at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:214)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358)
at com.sun.xml.bind.v2.runtime.BridgeImpl.unmarshal(BridgeImpl.java:120)
at com.sun.xml.bind.api.Bridge.unmarshal(Bridge.java:233)
at com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$DocLit.readRequest(EndpointArgumentsBuilder.java:517)
at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:243)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
网上解说纷云,其中说是把某些变量设成了私有导致的。但是全改了,还是不行。
自已测时,在本机是正常的,但在测试环境怎么都走不通。
于是换jdk,果然我本机一换jdk一样报错。
什么原因呢?其他接口都正常...
最终,换了个webservice的jar包,搞定。
这问题告诉我们,jar包的更新多么重要。
最新的包会解决很多已知的bug.