文章目录
在 Intellij IDEA 中创建并调用 WebServices
零、环境准备
本次实验演示环境为:
- Windows 10
- IntelliJ IDEA 2019.2.4 (Ultimate Edition)
- Apache Tomcat/8.5.35
- java 1.8.0_211
一、创建 WebServices
1.新建 WebServices 项目
打开 Intellij IDEA 开发工具,依次点击【File】→【New】→【Project…】
接下来,按照图中顺序,依次选择对应的配置,最后点击【Next】
输入项目名称,点击【Finish】,Intellij 会自动下载对应的依赖包。
依赖包下载完成后,项目结构目录如下所示。
2.编写程序
项目是默认自带 HelloWorld 程序,也可以自定义编写程序,这里就直接使用 HelloWorld 演示,二者本质没有什么区别。
3.依赖配置
3.1 配置 Tomcat
点击 Intellij 中右上角的 【Add Configuration…】
按照图中顺序依次点击添加 Tomcat
修改 Tomcat 名称,点击【Fix】设置部署
这里为方便操作将访问名由【webService_demo_war_exloded】修改为【webService_demo】
3.2 添加项目依赖
依次点击【File】→【Project Structure…】,进入项目结构配置。
先选择左侧的【Artifacts】,再点击右下角的【Fix…】,选择第一个【Add ……】即可。
到此 WebServices 的创建配置即完成。
4.运行测试
点击运行 Tomcat
在浏览器地址栏中输入 http://localhost:8080/webService_demo/services ,看到以下结果显示即运行成功。
点击【HelloWorld(wsdl)】也可以看到详细内容。
5.生成wsdl
依次点击 Intellij 最上侧功能栏的【Tools】→【WebServices】→【Generate Wsdl From Java Code…】
点击【OK】即可
生成后可以看到目录中多了【HelloWorld.wsdl】文件。
二、调用WebServices
1.创建 client 包
在 src 目录下创建 client 包,用于存放测试的各个类
2.由 wsdl 文件生成 java 代码
先点击【HelloWorld.wsdl】文件,再依次点击【Tools】→【WebServices】→【Generate Java Code FromWsdl…】
然后会弹出生成 Java 代码的相关配置,主要是 wsdl 来源路径、输出路径等,一般而言不需要更改,直接点击【OK】即可。
成功后可以看到 client 目录下生成了很多文件。
3.编写测试用例
在 client 目录下新建 test.java ,添加以下测试代码。
package client;
import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
public class test {
public static void main(String[] args){
// 1.指定调用WebService的URL,这里是我们发布后点击HelloWorld
String url = "http://localhost:8080/webService_demo/services/HelloWorld?wsdl";
try {
// 2.创建Locator对象,相当于传统服务的类或者是库
HelloWorldServiceLocator helloWorldServiceLocator = new HelloWorldServiceLocator();
// 3.获取port,相当于传统类或库的方法接口
HelloWorld_PortType service = helloWorldServiceLocator.getHelloWorld(new URL(url));
// 4.通过port调用服务
String result = service.sayHelloWorldFrom("summer");
System.out.println(result);
}catch (ServiceException | RemoteException | MalformedURLException ex){
ex.printStackTrace();
}
}
}
4.运行测试用例
先确保服务端正在运行,也就是 Tomcat 正在运行,之后直接点击右键,选择【Run ‘test.main()’】即可。
WebServices的调用到此即完成。
三、遇到的 Bug 及解决方式
1.运行测试用例报 404
最开始编写的测试用例并没有指定目标的 wsdl,所以才会报这个错误,添加指定 URL 即可解决。
//原测试代码
package client;
import javax.xml.rpc.ServiceException;
import java.rmi.RemoteException;
public class test {
public static void main(String[] args){
try {
// 1.创建Locator对象,相当于传统服务的类或者是库
HelloWorldServiceLocator helloWorldServiceLocator = new HelloWorldServiceLocator();
// 2.获取port,相当于传统类或库的方法接口
HelloWorld_PortType service = helloWorldServiceLocator.getHelloWorld();
// 3.通过port调用服务
String result = service.sayHelloWorldFrom("summer");
System.out.println(result);
}catch (ServiceException | RemoteException ex){
ex.printStackTrace();
}
}
}
2.log4j警告信息
运行项目时一直显示 log4j 警告
在 src 目录下新建文件【log4j.properties】,添加以下代码即可。
log4j.rootLogger=debug, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=firestorm.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.com.codefutures=DEBUG
参考文章:【1】WebService—— IDEA创建WebServices
【2】idea搭建WebService HelloWorld程序
【3】Intellij IDEA开发WebService步骤实例
【5】IntelliJ IDEA java开发 WebService
【6】Intellij IDEA开发WebService步骤实例
【5】IntelliJ IDEA java开发 WebService
来源:CSDN
作者:渣渣的夏天
链接:https://blog.csdn.net/qq_39564555/article/details/103222927