文章目录
一、JDK发布服务
1.1在eclipse中新建JavaProject,用于发布服务,工程名:webservice_server_jdk
Java工程
1.2创建com.qf.webservice包、IWeatherService接口、WeatherServiceImpl 实现类
IWeatherService 代码
package com.qf.webservice;
public interface IWeatherService {
public String query(String name);
}
WeatherServiceImpl 代码
package com.qf.webservice;
import javax.jws.WebService;
@WebService
public class WeatherServiceImpl implements IWeatherService{
@Override
public String query(String name) {
return "天气晴朗"+name;
}
}
1.3发布服务
编写Test类,然后右击直接运行就好
Test类代码如下:
package com.qf.webservice.main;
import javax.xml.ws.Endpoint;
import com.qf.webservice.WeatherServiceImpl;
public class Test {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8080/weatherService", new WeatherServiceImpl());
System.out.println("发布成功");
}
}
1.4浏览器查看服务
直接复制 Test类中发布服务的地址,然后在后面添加?wsdl
Endpoint.publish(“http://localhost:8080/weatherService”, new
WeatherServiceImpl());
浏览器地址:http://localhost:8080/weatherService?wsdl
浏览到以下信息则发布成功
二、JDK引用服务
2.1在eclipse中新建JavaProject,用于引用服务,工程名:webservice_client_1
工程如下:
2.2生成客户端代码
Ctrl+R打开运行窗口,输入cmd进入命令窗口
复制工程路径,右击项目下的src目录->Properties
我的路径为:D:\MyStudy\ItheimaStudy\workspace\JavaEECode\webservice_client_1\src
各位读者的路径和我的不一样,根据你的为准
在命令窗口中利用wsimport命令生成客户端代码
1、我的代码在D盘,在用切换到D盘
2、在用cd 【刚刚复制的Java路径】,进去此目录
3、用wsimport -s . http://localhost:8080/weatherService?wsdl 生成代码
2.3回到工程,调用服务
回到工程,刷新一下工程就可以看见生成的代码了
编写Client类,调用query方法
Client类代码如下:
package com.qf.webservice.client;
import com.qf.webservice.WeatherServiceImpl;
import com.qf.webservice.WeatherServiceImplService;
public class Client {
public static void main(String[] args) {
WeatherServiceImplService service = new WeatherServiceImplService();
WeatherServiceImpl port = service.getPort(WeatherServiceImpl.class);
String query = port.query("上海");
System.out.println(query);
}
}
方法二,调用服务(作为了解就够了!!!!)
Client类代码如下:
package com.qf.webservice.client;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import com.qf.webservice.WeatherServiceImpl;
public class Client {
public static void main(String[] args) throws MalformedURLException {
URL url = new URL("http://localhost:8080/weatherService?wsdl");
QName qName = new QName("http://webservice.qf.com/", "WeatherServiceImplService");
Service service = Service.create(url, qName);
WeatherServiceImpl port = service.getPort(WeatherServiceImpl.class);
String query = port.query("上海");
System.out.println(query);
}
}