Java-WebService简单的发布及调用
一、WebService的发布
1、创建接口类,接口中定义一个测试方法,加上@WebService注解,name做为服务的名称,可以自己定义,targetNameSpace一般是http:// + 类所在包从后往前排
package com.harper.webservice.service;
import javax.jws.WebParam;
import javax.jws.WebService;
/**
* @author Harper
* @Description 描述
* @date 2021/3/18 15:55
*/
@WebService(name = "testService", targetNamespace = "http://service.webservice.harper.com")
public interface WebServiceTestService {
/**
* webservice类
*
* @param name 参数名称
* @return 结果
*/
String webServiceTest(@WebParam(name = "name") String name);
}
2、创建接口对应的实现类,并实现接口定义的方法
package com.harper.webservice.service;
import com.harper.webservice.service.WebServiceTestService;
import javax.jws.WebService;
/**
* @author Harper
* @Description 描述
* @date 2021/3/18 15:57
*/
@WebService(serviceName = "testService",
targetNamespace = "http://service.webservice.harper.com",
endpointInterface = "com.harper.webservice.service.WebServiceTestService")
public class WebServiceTestServiceImpl implements WebServiceTestService {
@Override
public String webServiceTest(String name) {
return name + ":Hello World!";
}
}
3、创建WebService发布方法
package com.harper.webservice;
import com.harper.webservice.service.WebServiceTestServiceImpl;
import javax.xml.ws.Endpoint;
/**
* @author Harper
* @Description 描述
* @date 2021/3/18 15:57
*/
public class WebServiceServerTest {
public static void main(String[] args) {
Endpoint.publish("http://localhost:12345/test", new WebServiceTestServiceImpl());
System.out.println("【WebService发布成功】");
}
}
4、运行完之后在浏览器访问Endpoint.publish中设置的地址 + ?wsdl,如果看见如下图所示效果,即为发布成功。
二、WebService的调用
1、使用IDEA的WebServices生成WebServices调用的相关代码,如下图所示;
2、第二张图中第一个参数填WebService的地址,第二和第三是自己选择代码输出的位置,第四个选择图中所示选项,最后点击OK即可。
3、最后编写测试的代码即可运行
package com.harper.webservice;
import com.harper.webservice.test.TestService;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.io.IOException;
import java.net.URL;
/**
* @author Harper
* @Description 描述
* @date 2021/3/18 16:03
*/
public class WebServiceClientTest{
public static void main(String[] args) throws IOException {
URL wsdlUrl = new URL("http://localhost:12345/test?wsdl");
Service service = Service.create(wsdlUrl, new QName("http://service.webservice.harper.com", "testService"));
TestService testService = service.getPort(new QName("http://service.webservice.harper.com", "WebServiceTestServiceImplPort"), TestService.class);
System.out.println("【结果】:" + testService.webServiceTest("Harper"));
}
}
4、运行结果展示