没有Java EE容器1.6和1.7的JAX-WS Web服务

时间:2012-10-05 07:19:25

标签: java jax-ws com.sun.net.httpserver

我在java 1.7中尝试了这个tutorial,但是如果我选择了java 1.6,我得到了这个例外:

Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.company.jaxws.stockquote.service.jaxws.GetQuote 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.company.jaxws.stockquote.service.StockQuoteService.publish(StockQuoteService.java:49)
at com.company.jaxws.stockquote.service.StockQuoteService.main(StockQuoteService.java:81)
Java Result: 1

来源是可用的here

欢迎所有建议。

1 个答案:

答案 0 :(得分:0)

Try to add  @SOAPBinding to your server endpoint implementation class.it may resolve the problem.


@WebService(name = "StockQuote", serviceName = "StockQuoteService")
@SOAPBinding(style = Style.DOCUMENT, use=Use.LITERAL)
public class StockQuoteImpl {
    @WebMethod(operationName = "getQuote")
    public double getQuote(String ticker) {
        double result = 0.0;
        if (ticker.equals("MHP")) {
            result = 50.0;
        } else if (ticker.equals("IBM")) {
            result = 83.0;
        }
        return result;
    }
}