加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

一个简单的webService

发布时间:2020-12-16 23:34:46 所属栏目:安全 来源:网络整理
导读:1.创建接口类 @WebService public interface Hello { ??? String sayHi(@WebParam(name="name")String name); } 2.实现接口类 @WebService(endpointInterface = "com.test.Hello", ??????? serviceName = "Hello") public class HelloImpl implements Hello

1.创建接口类

@WebService
public interface Hello {
??? String sayHi(@WebParam(name="name")String name);
}

2.实现接口类

@WebService(endpointInterface = "com.test.Hello",
??????? serviceName = "Hello")
public class HelloImpl implements Hello {
??? public String sayHi(String name) {
??????? return "hello,"+name;
??? }
}

3.发布

public class ServiceMain {

??? public static void main(String[] args) throws Exception{
??????? System.out.print("Starting Service...");
??????? String address = "http://localhost:8888/hello";
??????? HelloImpl helloImpl = new HelloImpl();
??????? Endpoint.publish(address,helloImpl);
??? }
}

4.访问:http://localhost:8888/hello?wsdl,如下成功

问题

执行main方法时候有可能出现以下错误,据说是JDK版本所致:

Starting Service...Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.test.jaxws.SayHi 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:92)
?? ?at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
?? ?at com.test.ServiceMain.main(ServiceMain.java:20)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
?? ?at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
?? ?at java.lang.reflect.Method.invoke(Method.java:597)
?? ?at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Process finished with exit code 1

解决方法:

给接口类的sayHi()方法加上:??

@SOAPBinding(style=SOAPBinding.Style.RPC)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读