0
点赞
收藏
分享

微信扫一扫

eclipse下开发简单的Java Web Service

余寿 2022-03-12 阅读 47


service部分

在eclipse下新建一个动态web项目

eclipse下开发简单的Java Web Service_xml


eclipse下开发简单的Java Web Service_客户端_02


在项目中新建一个service类

eclipse下开发简单的Java Web Service_webservice_03


eclipse下开发简单的Java Web Service_webservice_04


编写SayHello类的代码

package org.sunny.service;

//包不要引用错了
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

//注解@WebService不能少
@WebService
public class SayHello {

//该方法为客户端调用的方法,方法名任意
public String say(String name){
return "Hello " + name + " , this is SayHelloService !" ;
}

public static void main(String[] args) {
//第一个参数是访问时的url,9091是任意一个不占用的端口
Endpoint.publish("http://localhost:9091/Service/SayHello", new SayHello());
System.out.println("service success !");
}
}


进行测试:​对任意空白处右键

eclipse下开发简单的Java Web Service_java_05

或者

eclipse下开发简单的Java Web Service_java_06

运行后将会调用类中的main方法

运行结果出现如下配置则表示发布成功

eclipse下开发简单的Java Web Service_java_07


访问网页:http://localhost:9091/Service/SayHello?wsdl

注意:‘?wsdl’是必须要添加的。

出现如下页面表示发布成功

eclipse下开发简单的Java Web Service_webservice_08




client部分

新建客户端类

eclipse下开发简单的Java Web Service_webservice_09



当然,你也可以新建一个web项目来编写客户端代码,本次client可service放在同一个项目下



打开命令行:win+R打开运行,输入cmd

输入以下命令

  ​wsimport -s E:\SunnyWen\Data\Java_web\WebServiceDemo\src -p org.sunny.client.config -keep http://localhost:9091/Service/SayHello?wsdl

  -s 后面的是你项目src所在的路径

  -p 后面的是你通过该命令生成的类所在的包

  -keep 表示导出webservice的class文件时是否也导出源代码java文件.

  -verbose表示详细信息。

  -d 表示输出的目录,目录必须事先存在,否则导出失败。


在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,用这些类文件,就可以像调用本地的类一样调用WebService提供的方法。该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现。

其他命令参数请参照:​​http://download-llnw.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html​​

eclipse下开发简单的Java Web Service_java_10


eclipse下开发简单的Java Web Service_webservice_11


eclipse下开发简单的Java Web Service_客户端_12


eclipse下开发简单的Java Web Service_xml_13


对client类进行代码编写


package org.sunny.client;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
//包别导错了
import javax.xml.ws.WebServiceClient;

//导入两个命令生成的类
import org.sunny.client.config.SayHello;
import org.sunny.client.config.SayHelloService;

//注解@WebServiceClient需要加入
@WebServiceClient
public class ClientToSay {

public static void main(String[] args) {

// 方法一
/*try {
// 服务WSDL Document的地址

URL url = new URL("http://localhost:9091/Service/SayHello?wsdl");
// 1.Qnameqname是qualified name 的简写
// 2.构成:由名字空间(namespace)前缀(prefix)以及冒号(:),还有一个元素名称构成
// 由package-info.java文件可知namespace为http://service.sunny.org/,
QName qname = new QName("http://service.sunny.org/", "SayHelloService");
Service service = Service.create(url, qname);
SayHello sayHello = service.getPort(SayHello.class);
String result = sayHello.say("Sunny01");
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}*/

// 方法二
//通过SayHelloService的getSayHelloPort()方法的奥SayHello接口
SayHello sayHello = new SayHelloService().getSayHelloPort();
//调用SayHello接口的say方法
String result = sayHello.say("Sunny02");
//输出返回内容
System.out.println(result);
}

}


运行为java application程序,输出结果

eclipse下开发简单的Java Web Service_xml_14

eclipse下开发简单的Java Web Service_webservice_15 


举报

相关推荐

0 条评论