今天写了一个webservice小例子,可是发布服务时程序报错:
Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.anything.service.jaxws.Minus is not found. Have you run APT to generate them?
?? ?at com.sun.xml.internal.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:256)
?? ?at com.sun.xml.internal.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:567)
?? ?at com.sun.xml.internal.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:514)
?? ?at com.sun.xml.internal.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:341)
?? ?at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:227)
?? ?at com.sun.xml.internal.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:308)
?? ?at com.sun.xml.internal.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:174)
?? ?at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:420)
?? ?at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:439)
?? ?at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:208)
?? ?at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:138)
?? ?at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:90)
?? ?at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
?? ?at com.anything.service.MyServer.main(MyServer.java:12)
经查资料,最终解决方法
第一种:在服务接口的方法添加@SOAPBinding(style = SOAPBinding.Style.RPC)得以解决
第二种:升级jdk版本,升级为jdk1.6u17及以上版本
初学建议使用第二种方式,第一种方式是改变@SOAPBinding消息的编码样式,webservice默认的DOCUMENT