网站怎么在工信部备案信息,网站建设与管理实践,wordpress主题带手机版,做网站的属于什么岗位背景
调用别人的服务 首先得有一个wsdl文件 这个文件可以手动发你#xff0c;也可以通过链接网页#xff0c;复制网页上的所有内容保存为wsdl文件。 以上为前提。 假设你已经有了wsdl文件。
wsdl文件有两种方式转成java文件
第一种wsimport
E:\temp\webservicewsimpo…背景
调用别人的服务 首先得有一个wsdl文件 这个文件可以手动发你也可以通过链接网页复制网页上的所有内容保存为wsdl文件。 以上为前提。 假设你已经有了wsdl文件。
wsdl文件有两种方式转成java文件
第一种wsimport
E:\temp\webservicewsimport -keep -p com.test test.wsdl
正在解析 WSDL...
正在生成代码...正在编译代码...E:\temp\webservice这很正常就结束了。 如果出现问题比如说首行不对看一看改一改即可。 如果说出现重复注意一下啊wsimport上暂时没找到解决方案得用第二种
第二种wsdl2java
这种是用一个apache-cxf里的工具 文件全名为 apache-cxf-3.1.15 你从csdn找个链接下找官网也行就是贼慢那个版本都行。 然后下完了配一下环境变量path里加一行指向这个文件的bin文件 之后在cmd中使用命令
wsdl2java -p com.example.generated -d output_directory -autoNameResolution wsdl.wsdlwsdl2java :顾名思义wsdl文件转为java文件 -p com.example.generated生成的java文件所保存的文件路径【可以先用上之后再改也可】 -d output_directory生成的java文件所保存的文件路径的文件夹【当src用】 -autoNameResolution自动选择自动名称【就是把重复名字的加上路径前缀】 wsdl.wsdl就是一个名字叫做wsdl的wsdl文件
生成的java文件使用
这玩意比较麻烦 你需要找你的生成的文件中的Service东西多的话比较难找因为他把所有东西都放在了com.example.generated包下 我自己写了个代码把所有文件名取出来筛选出后缀为Service的 代码丑陋能用上就行
import java.io.File;/**
* getmulu
*
* author: Myli c
* Date: 2023/12/26 10:34
* version: 1.0
*/public class PackageScanner {public static void main(String[] args) {String packageName E:\\output_directory\\com\\example\\; // 替换成你的包名PackageScanner packageScanner new PackageScanner();packageScanner.scanPackage(packageName);}public void scanPackage(String packagePath) {File packageDirectory new File(packagePath);if (packageDirectory.isDirectory()) {System.out.println(Files in package packagePath :);listFiles(packageDirectory);} else {System.err.println(packagePath is not a valid package directory.);}}private void listFiles(File directory) {File[] files directory.listFiles();if (files ! null) {for (File file : files) {if (file.isDirectory()) {listFiles(file);} else {// 仅在文件名以service结尾时输出if (file.getName().toLowerCase().endsWith(service.java)) {System.out.println(file.getName());}}}}}
}Connected to the target VM, address: 127.0.0.1:56671, transport: socket
Files in package E:\\output_directory\com\example\:
xxxx_Service.java
Disconnected from the target VM, address: 127.0.0.1:56671, transport: socket这个xxxx_Service.java就是你的实例化服务
写完才发现直接在生成的文件中全局搜 extends Service更快(⊙﹏⊙)
总结一下
//导入生成的类 在您的Java代码中导入生成的客户端类。例如import com.example.generated.YourWebServicePortType;
import com.example.generated.YourWebServiceService;//创建服务实例 创建WebService服务实例。这通常涉及到使用生成的服务类创建一个实例。例如YourWebServiceService service new YourWebServiceService();
YourWebServicePortType port service.getYourWebServicePortTypePort();//调用WebService方法 使用生成的客户端类的方法调用WebService方法。
//方法的签名和命名通常基于WSDL中定义的操作。例如// 调用WebService的方法
String result port.yourWebServiceMethod(parameter1, parameter2);
//请替换yourWebServiceMethod和parameter1parameter2等与您的WebService方法和参数相对应的内容。//处理结果 处理WebService方法的返回值如果有的话。System.out.println(WebService Result: result);
//异常处理 添加适当的异常处理以处理可能发生的错误。try {// 调用WebService的方法String result port.yourWebServiceMethod(parameter1, parameter2);System.out.println(WebService Result: result);
} catch (Exception e) {e.printStackTrace();// 处理异常
}